From 3aa74cf9b2cbd4bb5cae62608cadee852b7ef77e Mon Sep 17 00:00:00 2001 From: “wangming” <“wangming@antissoft.com”> Date: Thu, 18 Sep 2025 11:20:36 +0800 Subject: [PATCH] 提交 --- netcore/src/Modularity/Extend/NCC.Extend/LqEventService.cs | 8 +++++--- 数据库说明.md | 791 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 2 files changed, 188 insertions(+), 611 deletions(-) diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqEventService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqEventService.cs index 97def2c..5f301b3 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend/LqEventService.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend/LqEventService.cs @@ -30,6 +30,11 @@ namespace NCC.Extend.LqEvent private readonly ISqlSugarClient _db; private readonly IUserManager _userManager; + /// + /// 初始化一个类型的新实例 + /// + /// 数据库 + /// 用户管理 public LqEventService(ISqlSugarClient db, IUserManager userManager) { _db = db; @@ -184,9 +189,6 @@ namespace NCC.Extend.LqEvent /// /// 创建参数 /// 无返回值 - /// 拓客活动创建成功 - /// 请求参数错误或验证失败 - /// 服务器内部错误 [HttpPost("")] public async Task Create([FromBody] LqEventCrInput input) { diff --git a/数据库说明.md b/数据库说明.md index 8e660d9..e194e7c 100644 --- a/数据库说明.md +++ b/数据库说明.md @@ -1,469 +1,163 @@ # 绿纤美业ERP系统 - 数据库说明 -## 说明 -本文档用于记录项目中的数据库表结构、字段说明、表关联关系等信息。由于项目中的表名和字段名使用拼音首字母命名,且缺乏主外键关系,因此需要在此文档中详细记录以便开发时参考。 +## 📋 目录 +- [数据库基本信息](#数据库基本信息) +- [表关系图](#表关系图) +- [核心业务表关系](#核心业务表关系) +- [已弃用表变更记录](#已弃用表变更记录) +- [重要业务规则](#重要业务规则) +- [数据字典](#数据字典) +- [开发注意事项](#开发注意事项) --- ## 数据库基本信息 -- **数据库类型**:MySQL -- **数据库名称**:lqerp -- **字符集**:utf8 -- **表总数**:约100+张表 +- **数据库类型**: MySQL +- **数据库名称**: lqerp +- **字符集**: utf8 +- **表总数**: 约100+张表 +- **命名规范**: 业务前缀 `lq_` + 功能名称 --- -## 表结构说明 - -### 表命名规范 -- **业务前缀**:`lq_` (绿纤) -- **系统表前缀**:`base_` (基础系统表) -- **功能模块**:根据业务功能命名 - -### 字段命名规范 -- **主键字段**:统一使用 `F_Id` (varchar类型) -- **业务字段**:使用拼音首字母缩写 -- **时间字段**:统一使用 `datetime` 类型 -- **金额字段**:统一使用 `decimal` 类型 -- **删除标记**:`DeleteMark` 字段为 `null` 表示未删除,为 `0` 或其他值表示已删除 - -### 重要字段规则 -- **base_organize 表删除标记**:`DeleteMark` 字段为 `null` 表示未删除,为 `0` 或其他值表示已删除 - -### 已弃用表 -- **lq_ryzl (人员资料表)** - 已弃用,人员信息现在使用系统用户表 `BASE_USER` 管理 -- **lq_mdxx_mdgs (门店归属表)** - 已弃用,门店归属信息已整合到 `lq_mdxx` 表中 -- **lq_ycsd_mdmbsd (门店目标设定表)** - 已弃用,门店目标信息已整合到 `lq_mdxx` 表中 - -### 新增表 - -#### lq_zjl_tcsz (总经理提成设置表) -| 字段名 | 数据类型 | 是否可空 | 字段说明 | 主键 | -|--------|----------|----------|----------|------| -| id | varchar(50) | NO | 主键ID | PRI | -| userid | varchar(50) | NO | 用户ID | | -| level1 | decimal(10,4) | YES | 一级提成比例 | | -| level2 | decimal(10,4) | YES | 二级提成比例 | | -| level3 | decimal(10,4) | YES | 三级提成比例 | | -| tclx | varchar(20) | YES | 提成类型:gdb-固定比例,jttc-阶梯提成,tsgz-特殊规则 | | -| bz | text | YES | 备注说明 | | -| cjsj | datetime | YES | 创建时间 | | -| cjry | varchar(50) | YES | 创建用户 | | -| xgsj | datetime | YES | 修改时间 | | -| xgly | varchar(50) | YES | 修改用户 | | -| deletemark | tinyint(1) | YES | 删除标记:0-未删除,1-已删除 | | - -**索引**: -- PRIMARY KEY (`id`) -- UNIQUE KEY `uk_userid` (`userid`) -- KEY `idx_userid` (`userid`) - -**表说明**:用于管理总经理的提成设置,支持多级提成比例配置和不同类型的提成规则。 - -**相关接口**: -- `GET /api/Extend/LqZjlMdsmxsz/GetByZjlUserid` - 根据总经理用户ID查询相关设置信息 -- `POST /api/Extend/LqZjlMdsmxsz/BatchCreate` - 批量创建事业部总经理门店生命线设置 - -#### lq_zjl_mdsmxsz (总经理门店生命线设置表) -| 字段名 | 数据类型 | 是否可空 | 字段说明 | 主键 | -|--------|----------|----------|----------|------| -| id | varchar(50) | NO | 主键ID | PRI | -| zjl_userid | varchar(50) | NO | 总经理用户ID | | -| md_id | varchar(50) | NO | 门店ID | | -| smx1 | decimal(15,2) | NO | 生命线1 | | -| tcbl1 | decimal(5,2) | NO | 生命线提成比例1(%) | | -| smx2 | decimal(15,2) | YES | 生命线2 | | -| tcbl2 | decimal(5,2) | YES | 生命线提成比例2(%) | | -| smx3 | decimal(15,2) | YES | 生命线3 | | -| tcbl3 | decimal(5,2) | YES | 生命线提成比例3(%) | | -| bz | text | YES | 备注说明 | | -| cjsj | datetime | YES | 创建时间 | | -| cjry | varchar(50) | YES | 创建人员 | | -| xgsj | datetime | YES | 修改时间 | | -| xgly | varchar(50) | YES | 修改人员 | | -| deletemark | int(1) | NO | 删除标记:0=未删除,1=已删除 | | - -**索引**: -- PRIMARY KEY (`id`) -- UNIQUE KEY `uk_zjl_md` (`zjl_userid`, `md_id`) -- KEY `idx_zjl_userid` (`zjl_userid`) -- KEY `idx_md_id` (`md_id`) -- KEY `idx_cjsj` (`cjsj`) -- KEY `idx_zjl_md_status` (`zjl_userid`, `md_id`, `deletemark`) - -**表说明**:用于管理总经理对各个门店的生命线设置,每个总经理可以为其管理的门店设置3个生命线级别,每个级别都有对应的提成比例,用于业绩考核和提成计算。 - -**业务规则**: -- 每个总经理-门店组合只能有一条记录(通过唯一索引保证) -- 生命线1和提成比例1为必填项 -- 生命线2、3和对应的提成比例为可选项 -- 生命线金额必须大于0 -- 提成比例必须在0-100之间 -- 支持软删除,通过deletemark字段控制 +## 表关系图 + +### 核心业务流程图 +``` +门店信息 (lq_mdxx) + ↓ +用户信息 (BASE_USER) ← 人员资料 (lq_ryzl) [已弃用] + ↓ +金三角设定 (lq_ycsd_jsj) ← 金三角用户绑定 (lq_jinsanjiao_user) + ↓ +开单记录 (lq_kd_kdjlb) ← 预约记录 (lq_yyjl) + ↓ +├── 开单品项明细 (lq_kd_pxmx) ← 项目资料 (lq_xmzl) +├── 开单健康师业绩 (lq_kd_jksyj) +├── 开单科技部老师业绩 (lq_kd_kjbsyj) +└── 业绩明细 (lq_yjmxb) + +耗卡业务 + ↓ +耗卡记录 (lq_xh_hyhk) + ↓ +├── 耗卡品项明细 (lq_xh_pxmx) +├── 耗卡健康师业绩 (lq_xh_jksyj) +└── 耗卡科技部老师业绩 (lq_xh_kjbsyj) +``` --- -## 核心业务表 - -### 1. 门店相关表 - -#### lq_mdxx (门店资料) -| 字段名 | 数据类型 | 是否可空 | 字段说明 | 主键 | -|--------|----------|----------|----------|------| -| F_Id | varchar(50) | NO | 主键 | PRI | -| mdbm | varchar(50) | YES | 门店编码 | | -| djmdbh | varchar(50) | YES | 单据门店编号 | | -| djmd | varchar(50) | YES | 单据门店 | | -| dm | varchar(50) | YES | 店名 | | -| cs | varchar(50) | YES | 城市 | | -| dz | varchar(50) | YES | 地址 | | -| xm | varchar(50) | YES | 姓名 | | -| dhhm | varchar(50) | YES | 电话号码 | | -| zj | varchar(50) | YES | 座机 | | -| kysj | datetime | YES | 开业时间 | | -| zxzt | varchar(50) | YES | 最新状态 | | -| gsmc | varchar(50) | YES | 工商名称 | | -| fr | varchar(50) | YES | 法人 | | -| ywsb | varchar(50) | YES | 有无社保 | | -| syb | varchar(50) | YES | 事业部 | | -| jyb | varchar(50) | YES | 教育部 | | -| kjb | varchar(50) | YES | 科技部 | | -| dxmb | varchar(50) | YES | 大项目部 | | -| gsqssj | datetime | YES | 归属起始时间 | | -| gszzsj | datetime | YES | 归属终止时间 | | -| status | int(11) | YES | 状态 | | -| xsyj | decimal(18,2) | YES | 目标-门店生命线 | | -| xhyj | decimal(18,2) | YES | 目标-消耗业绩 | | -| xms | int(11) | YES | 目标-项目数 | | -| rt1 | int(11) | YES | 目标-人头1 | | -| rt2 | int(11) | YES | 目标-人头2 | | -| rc | int(11) | YES | 目标-人次 | | - -#### lq_md_mdlbjhsxx (门店类别及核算信息) -- 用于存储门店的分类信息和核算相关配置 - -#### ~~lq_md_mdgs (门店归属)~~ - 已弃用 -- ~~用于存储门店的归属关系~~ - 已整合到 `lq_mdxx` 表中 - -#### lq_md_mdwy (门店物业) -- 用于存储门店物业相关信息 - -#### lq_md_xdbhsj (门店新店保护时间) -| 字段名 | 数据类型 | 是否可空 | 字段说明 | 主键 | -|--------|----------|----------|----------|------| -| F_Id | varchar(50) | NO | 主键ID | PRI | -| mdid | varchar(50) | NO | 门店ID | | -| bhkssj | datetime | NO | 保护开始时间 | | -| bhjssj | datetime | NO | 保护结束时间 | | -| sm | varchar(500) | YES | 说明 | | -| cjsj | datetime | NO | 创建时间 | | -| sfqy | int | NO | 是否启用(1启用,0禁用) | | - -**业务说明**: -- 用于设置门店的新店保护时间段 -- 在保护期间内,门店按新店薪酬规则计算 -- 保护期结束后,门店按老店薪酬规则计算 -- 支持多个门店设置不同的保护时间段 - -### 2. 人员相关表 - -#### lq_ryzl (人员资料) - ⚠️ 已弃用 -> **注意**:此表已弃用,人员信息现在使用系统用户表 `BASE_USER` 管理 - -| 字段名 | 数据类型 | 是否可空 | 字段说明 | 主键 | -|--------|----------|----------|----------|------| -| F_Id | varchar | NO | 序号 | PRI | -| dm | varchar | YES | 店名 | | -| zw | varchar | YES | 职位 | | -| fyft | varchar | YES | 费用分摊 | | -| gwfl1 | varchar | YES | 岗位分类1 | | -| xm | varchar | YES | 姓名 | | -| zzqk | varchar | YES | 在职情况 | | -| gwfl2 | varchar | YES | 岗位分类2 | | -| rzsj | datetime | YES | 入职时间 | | -| lzsj | datetime | YES | 离职时间 | | -| zd | varchar | YES | 战队 | | -| yl1 | varchar | YES | 预留1 | | -| yl2 | varchar | YES | 预留2 | | -| yl3 | varchar | YES | 预留3 | | -| sjh | varchar | YES | 手机号 | | - -### 3. 项目相关表 - -#### lq_xmzl (项目资料) -| 字段名 | 数据类型 | 是否可空 | 字段说明 | 主键 | -|--------|----------|----------|----------|------| -| F_Id | varchar | NO | 主键 | PRI | -| xmbh | varchar | YES | 项目编号 | | -| xmmc | varchar | YES | 项目名称 | | -| bzjg | decimal | YES | 标准价格 | | -| xmsc | int | YES | 项目时长(分钟) | | -| jcfwtc | decimal | YES | 基础服务提成 | | -| fl1 | varchar | YES | 分类①-汇总表 | | -| fl2 | varchar | YES | 分类②-汇总表 | | -| fl3 | varchar | YES | 分类③-工资用 | | -| fl4 | varchar | YES | 分类④-统计品项用 | | -| tjlb | varchar | YES | 统计类别 | | -| zklb | varchar | YES | 折扣类别 | | -| fl | varchar | YES | 分类 | | -| qt1 | varchar | YES | 其它1 | | -| qt2 | varchar | YES | 其它2 | | -| syje | decimal | YES | 溯源金额 | | -| cellje | decimal | YES | Cell金额 | | -| sgf | decimal | YES | 手工费 | | - -### 4. 业绩相关表 - -#### lq_yjmxb (业绩明细表) -| 字段名 | 数据类型 | 是否可空 | 字段说明 | 主键 | -|--------|----------|----------|----------|------| -| F_Id | varchar | NO | 业绩编号 | PRI | -| fssj | datetime | YES | 发生时间 | | -| syb | varchar | YES | 事业部 | | -| mdbh | varchar | YES | 门店编号 | | -| mdmc | varchar | YES | 门店名称 | | -| jsj | varchar | YES | 金三角 | | -| jks | varchar | YES | 健康师 | | -| xmbh | varchar | YES | 项目编号 | | -| xmmc | varchar | YES | 项目名称 | | -| bm | varchar | YES | 部门 | | -| khbh | varchar | YES | 客户编号 | | -| khmc | varchar | YES | 客户名称 | | -| ssyj | varchar | YES | 实收业绩 | | -| qk | varchar | YES | 欠款 | | -| khly | varchar | YES | 客户来源 | | -| bz | varchar | YES | 备注 | | -| zyj | varchar | YES | 总业绩 | | - -### 5. 金三角设定表 - -#### lq_ycsd_jsj (金三角设定) -| 字段名 | 数据类型 | 是否可空 | 字段说明 | 主键 | -|--------|----------|----------|----------|------| -| F_Id | varchar(50) | NO | 主键 | PRI | -| yf | varchar(50) | YES | 月份 | | -| jsj | varchar(50) | YES | 金三角 | | -| md | varchar(255) | YES | 门店ID | | - -**业务说明**: -- 这是金三角基础信息表,只记录金三角的基本信息 -- 金三角与用户的绑定关系通过 `lq_jinsanjiao_user` 表管理 -- 金三角的业绩统计等数据通过业务逻辑计算,不存储在此表中 - -#### lq_jinsanjiao_user (金三角用户绑定关系) -| 字段名 | 数据类型 | 是否可空 | 字段说明 | 主键 | -|--------|----------|----------|----------|------| -| F_Id | varchar(50) | NO | 主键 | PRI | -| jsj_id | varchar(50) | NO | 金三角ID(关联lq_ycsd_jsj.F_Id) | | -| user_id | varchar(50) | NO | 用户ID(关联BASE_USER.F_Id) | | -| user_name | varchar(50) | NO | 用户姓名 | | -| is_leader | int(11) | YES | 是否顾问(0-否,1-是) | | -| status | varchar(20) | YES | 状态(ACTIVE-活跃,INACTIVE-非活跃) | | -| sort_order | int(11) | YES | 排序 | | -| F_CreatorTime | datetime | YES | 创建时间 | | -| F_CreatorUserId | varchar(50) | YES | 创建人ID | | -| F_LastModifyTime | datetime | YES | 最后修改时间 | | -| F_LastModifyUserId | varchar(50) | YES | 最后修改人ID | | -| F_DeleteMark | int(11) | YES | 删除标记 | | - -**业务说明**: -- 这是金三角与用户的绑定关系表,管理金三角成员信息 -- 支持多人或单人金三角,通过 `is_leader` 字段标识队长 -- 支持用户在不同金三角间流动,通过 `status` 字段管理状态 -- 通过 `sort_order` 字段控制成员排序 - -### 6. 开单相关表 - -#### lq_kd_kdjlb (开单记录表) -| 字段名 | 数据类型 | 是否可空 | 字段说明 | 主键 | -|--------|----------|----------|----------|------| -| F_Id | varchar | NO | 开单编号 | PRI | -| djmd | varchar | YES | 单据门店 | | -| jsj | varchar | YES | 金三角 | | -| kdrq | datetime | YES | 开单日期 | | -| gjlx | varchar | YES | 顾客类型 | | -| hgjg | varchar | YES | 合作机构 | | -| zdyj | decimal | YES | 整单业绩 | | -| sfyj | decimal | YES | 实付业绩 | | -| qk | decimal | YES | 欠款 | | -| ckfs | varchar | YES | 储扣方式 | | -| ckmx | varchar | YES | 储扣明细 | | -| fkfs | varchar | YES | 付款方式 | | -| fkyy | varchar | YES | 付款医院 | | -| fkpd | varchar | YES | 付款判断 | | -| khly | varchar | YES | 客户来源 | | -| tjr | varchar | YES | 推荐人 | | -| sfskdd | varchar | YES | 是否首开订单 | | -| jj | varchar | YES | 简介 | | -| scwj | varchar | YES | 上传文件 | | -| hyqz | varchar | YES | 会员签字 | | -| bz | varchar | YES | 备注 | | -| kdhy | varchar | YES | 开单会员 | | -| kdhyc | varchar | YES | 开单会员名称 | | -| kdhysjh | varchar | YES | 开单会员手机号 | | -| jksyj | varchar | YES | 健康师业绩 | | -| kjblsyj | varchar | YES | 科技部老师业绩 | | -| pxxx | varchar | YES | 品项信息 | | -| F_CreateUser | varchar | YES | 开单用户 | | -| F_FIleUrl | varchar | YES | 方案其他 | | - -**业务说明**: -- 这是系统的核心业务表,记录所有开单信息 -- 包含业绩计算、客户信息、付款方式等关键业务数据 -- 与业绩明细表、人员表、项目表等都有密切关联 -- 用于薪酬计算、业绩统计、客户管理等核心功能 -- **新增字段说明**: - - `jksyj`:健康师业绩,存储该开单记录关联的所有健康师业绩总和 - - `kjblsyj`:科技部老师业绩,存储该开单记录关联的所有科技部老师业绩总和 - - `pxxx`:品项信息,存储该开单记录的所有品项信息 - - `F_CreateUser`:开单用户,记录创建该开单记录的用户ID - - `F_FIleUrl`:方案其他,存储开单相关的其他文件或方案信息 - -#### lq_kd_jksyj (开单健康师业绩表) -| 字段名 | 数据类型 | 是否可空 | 字段说明 | 主键 | -|--------|----------|----------|----------|------| -| F_Id | varchar | NO | 业绩编号 | PRI | -| glkdbh | varchar | YES | 关联开单编号 | | -| jks | varchar | YES | 健康师 | | -| jksxm | varchar | YES | 健康师姓名 | | -| jkszh | varchar | YES | 健康师账号 | | -| jksyj | varchar | YES | 健康师业绩 | | -| yjsj | datetime | YES | 业绩时间 | | -| jsj_id | varchar | YES | 金三角id | | -| F_kdpxid | varchar | NO | 开单品相ID | | - -**业务说明**: -- 记录每个开单记录关联的健康师业绩明细 -- 通过 `glkdbh` 字段关联开单记录表 -- 通过 `jsj_id` 字段关联金三角信息 -- **新增字段**:`F_kdpxid` 用于关联具体的品项明细 - -#### lq_kd_kjbsyj (开单科技部老师业绩表) -| 字段名 | 数据类型 | 是否可空 | 字段说明 | 主键 | -|--------|----------|----------|----------|------| -| F_Id | varchar | NO | 业绩编号 | PRI | -| glkdbh | varchar | YES | 关联开单编号 | | -| kjbls | varchar | YES | 科技部老师 | | -| kjblsxm | varchar | YES | 科技部老师姓名 | | -| kjblszh | varchar | YES | 科技部老师账号 | | -| kjblsyj | varchar | YES | 科技部老师业绩 | | -| yjsj | datetime | YES | 业绩时间 | | -| F_kdpxid | varchar | NO | 开单品相id | | - -**业务说明**: -- 记录每个开单记录关联的科技部老师业绩明细 -- 通过 `glkdbh` 字段关联开单记录表 -- **新增字段**:`F_kdpxid` 用于关联具体的品项明细 - -#### lq_kd_pxmx (开单品项明细表) -| 字段名 | 数据类型 | 是否可空 | 字段说明 | 主键 | -|--------|----------|----------|----------|------| -| F_Id | varchar | NO | 明细编号 | PRI | -| glkdbh | varchar | YES | 关联开单编号 | | -| px | varchar | YES | 品项 | | -| pxmc | varchar | YES | 品项名称 | | -| pxjg | decimal | YES | 品项价格 | | -| F_MemberId | varchar | NO | 会员id | | -| F_CreateTIme | datetime | YES | 创建时间 | | -| F_ProjectNumber | int | YES | 项目次数 | | -| F_IsEnabled | int | YES | 是否有效 | | -| F_SourceType | varchar | YES | 来源类型 | | -| F_TotalPrice | decimal | YES | 金额合计 | | - -**业务说明**: -- 记录每个开单记录的具体品项明细 -- 通过 `glkdbh` 字段关联开单记录表 -- 通过 `F_MemberId` 字段关联会员信息 -- **字段变更**:`F_MemberId` 现在是必填字段 - -### 7. 其他重要表 - -#### lq_xhmxb (消耗明细表) -- 用于存储消耗明细信息 - -#### lq_xh_jksyj (健康师业绩) -- 用于存储健康师业绩信息 - -#### lq_xh_kjbsyj (科技部老师业绩) -- 用于存储科技部老师业绩信息 - -#### lq_ycsd_mdmbsd (门店目标设定) -- 用于存储门店目标设定信息 - -#### lq_ycsd_gzhsfdtjsz (工资核算浮动条件设置) -- 用于存储工资核算的浮动条件设置 - -#### lq_ycsd_mdtjbcbftb (社保门店统计表成本分摊表) -- 用于存储社保成本分摊信息 - -### 8. 视图 - -#### v_jsj_monthly_performance (金三角月度业绩统计视图) -| 字段名 | 数据类型 | 字段说明 | -|--------|----------|----------| -| jsj_id | varchar(50) | 金三角ID | -| jsj_name | varchar(50) | 金三角名称 | -| month | varchar(50) | 月份 | -| store_id | varchar(50) | 门店ID | -| store_name | varchar(50) | 门店名称 | -| order_count | int | 开单数量 | -| total_performance | decimal(18,2) | 总业绩 | -| avg_performance | decimal(18,2) | 平均业绩 | -| last_order_date | datetime | 最后开单日期 | -| first_order_date | datetime | 首次开单日期 | -| health_teacher_count | int | 健康师数量 | -| health_teachers | text | 健康师姓名列表 | - -**业务说明**: -- 用于统计每个金三角的月度业绩情况 -- 关联表:`lq_ycsd_jsj`(金三角设定)、`lq_kd_jksyj`(健康师业绩)、`lq_mdxx`(门店信息) -- 提供详细的业绩统计信息,包括总业绩、平均业绩、开单数量等 - -#### v_jsj_monthly_summary (金三角月度业绩总和视图) -| 字段名 | 数据类型 | 字段说明 | -|--------|----------|----------| -| jsj_id | varchar(50) | 金三角ID | -| jsj_name | varchar(50) | 金三角名称 | -| month | varchar(50) | 月份 | -| store_id | varchar(50) | 门店ID | -| store_name | varchar(50) | 门店名称 | -| total_performance | decimal(18,2) | 月度业绩总和 | - -**业务说明**: -- 简化版的金三角月度业绩统计视图 -- 只包含核心的业绩总和信息 -- 用于快速查询金三角的月度业绩情况 +## 核心业务表关系 + +### 1. 门店与人员关系 +- **门店信息表**: `lq_mdxx` (门店基础信息) +- **人员信息**: `BASE_USER` (系统用户表,包含门店ID等扩展字段) +- **关联字段**: `BASE_USER.F_MDID` ↔ `lq_mdxx.F_Id` + +### 2. 金三角管理关系 +- **金三角设定**: `lq_ycsd_jsj` (金三角基础信息) +- **金三角用户绑定**: `lq_jinsanjiao_user` (金三角与用户绑定关系) +- **用户信息**: `BASE_USER` (系统用户表) +- **关联字段**: + - `lq_ycsd_jsj.F_Id` ↔ `lq_jinsanjiao_user.jsj_id` + - `lq_jinsanjiao_user.user_id` ↔ `BASE_USER.F_Id` + +### 3. 开单业务关系 +- **开单记录**: `lq_kd_kdjlb` (核心业务表) +- **开单品项明细**: `lq_kd_pxmx` (品项明细) +- **开单健康师业绩**: `lq_kd_jksyj` (健康师业绩) +- **开单科技部老师业绩**: `lq_kd_kjbsyj` (科技部老师业绩) +- **项目资料**: `lq_xmzl` (项目基础信息) +- **关联字段**: + - `lq_kd_kdjlb.F_Id` ↔ `lq_kd_pxmx.glkdbh` + - `lq_kd_kdjlb.F_Id` ↔ `lq_kd_jksyj.glkdbh` + - `lq_kd_kdjlb.F_Id` ↔ `lq_kd_kjbsyj.glkdbh` + - `lq_kd_pxmx.px` ↔ `lq_xmzl.F_Id` + - `lq_kd_jksyj.F_kdpxid` ↔ `lq_kd_pxmx.F_Id` + - `lq_kd_kjbsyj.F_kdpxid` ↔ `lq_kd_pxmx.F_Id` + +### 4. 耗卡业务关系 +- **耗卡记录**: `lq_xh_hyhk` (耗卡记录表) +- **耗卡品项明细**: `lq_xh_pxmx` (耗卡品项明细) +- **耗卡健康师业绩**: `lq_xh_jksyj` (耗卡健康师业绩) +- **耗卡科技部老师业绩**: `lq_xh_kjbsyj` (耗卡科技部老师业绩) +- **关联字段**: + - `lq_xh_hyhk.F_Id` ↔ `lq_xh_pxmx.glkdbh` (耗卡记录关联品项明细) + - `lq_xh_hyhk.F_Id` ↔ `lq_xh_jksyj.glkdbh` (耗卡记录关联健康师业绩) + - `lq_xh_hyhk.F_Id` ↔ `lq_xh_kjbsyj.glkdbh` (耗卡记录关联科技部老师业绩) + - `lq_xh_jksyj.F_kdpxid` ↔ `lq_xh_pxmx.F_Id` (健康师业绩关联品项明细) + - `lq_xh_kjbsyj.F_hkpxid` ↔ `lq_xh_pxmx.F_Id` (科技部老师业绩关联品项明细) + +### 5. 业绩统计关系 +- **业绩明细**: `lq_yjmxb` (业绩统计表) +- **关联字段**: + - `lq_yjmxb.jks` ↔ `BASE_USER.F_REALNAME` (健康师姓名) + - `lq_yjmxb.mdbh` ↔ `lq_mdxx.mdbm` (门店编号) + - `lq_yjmxb.xmbh` ↔ `lq_xmzl.xmbh` (项目编号) --- -## 表关联关系 - -### 主要关联关系 -1. **门店与人员**:`lq_mdxx.dm` ↔ `BASE_USER.F_MDID` (人员信息已迁移到系统用户表) -2. **人员与业绩**:`BASE_USER.F_REALNAME` ↔ `lq_yjmxb.jks` (通过姓名关联) -3. **项目与业绩**:`lq_xmzl.xmbh` ↔ `lq_yjmxb.xmbh` -4. **门店与业绩**:`lq_mdxx.mdbm` ↔ `lq_yjmxb.mdbh` -5. **金三角设定与用户绑定**:`lq_ycsd_jsj.F_Id` ↔ `lq_jinsanjiao_user.jsj_id` -6. **金三角用户绑定与用户**:`lq_jinsanjiao_user.user_id` ↔ `BASE_USER.F_Id` -7. **开单记录与门店**:`lq_kd_kdjlb.djmd` ↔ `lq_mdxx.dm` -8. **开单记录与金三角**:`lq_kd_kdjlb.jsj` ↔ `lq_ycsd_jsj.jsj` -9. **开单记录与业绩**:`lq_kd_kdjlb.F_Id` ↔ `lq_yjmxb.F_Id` (通过开单编号关联) -10. **门店与新店保护时间**:`lq_mdxx.F_Id` ↔ `lq_md_xdbhsj.mdid` -11. **开单记录与健康师业绩**:`lq_kd_kdjlb.F_Id` ↔ `lq_kd_jksyj.glkdbh` -12. **开单记录与科技部老师业绩**:`lq_kd_kdjlb.F_Id` ↔ `lq_kd_kjbsyj.glkdbh` -13. **开单记录与品项明细**:`lq_kd_kdjlb.F_Id` ↔ `lq_kd_pxmx.glkdbh` -14. **健康师业绩与品项明细**:`lq_kd_jksyj.F_kdpxid` ↔ `lq_kd_pxmx.F_Id` -15. **科技部老师业绩与品项明细**:`lq_kd_kjbsyj.F_kdpxid` ↔ `lq_kd_pxmx.F_Id` -16. **品项明细与项目资料**:`lq_kd_pxmx.px` ↔ `lq_xmzl.F_Id` - -### 业务逻辑关联 -- **开单记录表是核心业务表**:所有业务操作都围绕开单进行,是系统的业务中心 -- 门店信息是基础数据,人员、业绩、金三角设定都依赖门店 -- **人员信息已迁移**:人员资料现在使用系统用户表 `BASE_USER` 管理,包含门店ID、职位等扩展字段 -- 业绩明细表从开单记录表衍生,用于业绩统计和薪酬计算 -- 金三角设定表用于薪酬计算,关联人员业绩数据 -- 开单记录表包含完整的业务信息:客户、业绩、付款、品项等 +## 已弃用表变更记录 + +### ⚠️ 重要变更 + +#### 1. 人员资料表弃用 (2024年) +- **弃用表**: `lq_ryzl` (人员资料表) +- **替代方案**: 使用系统用户表 `BASE_USER` +- **迁移字段**: + - `lq_ryzl.dm` → `BASE_USER.F_MDID` (门店ID) + - `lq_ryzl.zw` → `BASE_USER.F_ZW` (职位) + - `lq_ryzl.gwfl1` → `BASE_USER.F_GWFL` (岗位分类) + - `lq_ryzl.xm` → `BASE_USER.F_REALNAME` (姓名) + - `lq_ryzl.sjh` → `BASE_USER.F_MobilePhone` (手机号) +- **业务影响**: 所有人员相关查询必须使用 `BASE_USER` 表 + +#### 2. 门店归属表弃用 (2024年) +- **弃用表**: `lq_mdxx_mdgs` (门店归属表) +- **替代方案**: 归属信息整合到 `lq_mdxx` 表 +- **迁移字段**: + - `syb` (事业部) + - `jyb` (教育部) + - `kjb` (科技部) + - `dxmb` (大项目部) + - `gsqssj` (归属起始时间) + - `gszzsj` (归属终止时间) + - `status` (状态) +- **业务影响**: 门店归属信息现在直接在 `lq_mdxx` 表中管理 + +#### 3. 门店目标设定表弃用 (2024年) +- **弃用表**: `lq_ycsd_mdmbsd` (门店目标设定表) +- **替代方案**: 目标信息整合到 `lq_mdxx` 表 +- **迁移字段**: + - `xsyj` (目标-门店生命线) + - `xhyj` (目标-消耗业绩) + - `xms` (目标-项目数) + - `rt1` (目标-人头1) + - `rt2` (目标-人头2) + - `rc` (目标-人次) + +--- + +## 重要业务规则 + +### 1. 删除标记规则 +- **base_organize 表**: `DeleteMark` 为 `null` 表示未删除,为 `0` 或其他值表示已删除 +- **其他表**: 通常使用 `deletemark` 字段,`0` 表示未删除,`1` 表示已删除 + +### 2. ID生成规则 +- **主键字段**: 统一使用 `F_Id` (varchar类型) + +### 3. 金额字段规则 +- **存储类型**: 所有金额字段使用 `varchar` 类型存储 +- **计算注意**: 查询时需要转换为 `decimal` 类型进行计算 +- **精度要求**: 金额计算保留2位小数 + +### 4. 时间字段规则 +- **存储类型**: 统一使用 `datetime` 类型 +- **时区处理**: 注意时区转换问题 +- **查询格式**: 使用 `yyyy-MM-dd HH:mm:ss` 格式 --- @@ -472,177 +166,58 @@ ### 门店状态 (lq_mdxx.zxzt) - 待补充具体枚举值 -### 在职情况 (BASE_USER.F_ENABLEDMARK) - ⚠️ 已迁移 -- 人员在职状态现在使用系统用户表的 `F_ENABLEDMARK` 字段管理 +### 岗位分类 (BASE_USER.F_GWFL, F_GW) - 待补充具体枚举值 -### 岗位分类 (BASE_USER.F_GWFL, F_GW) - ⚠️ 已迁移 -- 岗位信息现在使用系统用户表的 `F_GWFL` 和 `F_GW` 字段管理 +### 项目分类 (lq_xmzl.fl1, fl2, fl3, fl4) - 待补充具体枚举值 -### 项目分类 (lq_xmzl.fl1, fl2, fl3, fl4) +### 金三角状态 (lq_jinsanjiao_user.status) +- `ACTIVE`: 活跃 +- `INACTIVE`: 非活跃 + +### 预约状态 (lq_yyjl.F_Status) - 待补充具体枚举值 --- -## 数据库视图 - -### v_jsj_monthly_performance (金三角月度业绩统计视图) -- **功能**:统计每个金三角的月度业绩数据 -- **关联表**:lq_ycsd_jsj, lq_kd_jksyj, lq_mdxx, lq_jinsanjiao_user -- **主要字段**: - - jsj_id: 金三角ID - - jsj_name: 金三角姓名 - - month: 统计月份 - - total_performance: 总业绩 - - order_count: 开单数量 - - avg_performance: 平均业绩 - - last_order_date: 最后开单日期 - - first_order_date: 首次开单日期 - - health_teacher_name: 健康师姓名 - -### v_jsj_monthly_summary (金三角月度业绩总和视图) -- **功能**:金三角月度业绩汇总(简化版) -- **关联表**:lq_ycsd_jsj, lq_kd_jksyj, lq_jinsanjiao_user -- **主要字段**: - - jsj_id: 金三角ID - - jsj_name: 金三角姓名 - - month: 统计月份 - - total_performance: 总业绩 - -### v_order_detail_simple (开单详细记录视图) -- **功能**:联合开单记录表、开单品项明细表、项目资料表,呈现开单详细记录 -- **关联表**:lq_kd_kdjlb, lq_kd_pxmx, lq_xmzl -- **主要字段**: - - order_id: 开单编号 - - order_member: 开单会员 - - member_phone: 会员手机号 - - order_time: 开单时间 - - item_code: 开单品项(项目编号) - - item_name: 品项名称 - - project_count: 项目数量 - - project_unit_price: 项目单价 - - project_total_price: 项目总价(数量*单价) - - source_type: 来源类型 - - project_category3: 项目分类3 - -### v_personal_monthly_performance (个人业绩月度统计视图) -- **功能**:统计每个健康师和科技部老师的月度业绩情况 -- **关联表**:lq_kd_jksyj, lq_kd_kjbsyj, lq_kd_kdjlb, lq_kd_pxmx, BASE_USER, lq_mdxx, lq_ycsd_jsj -- **主要字段**: - - performance_month: 业绩月份(YYYY-MM) - - user_name: 用户姓名 - - position: 职位 - - department: 部门(门店名称) - - golden_triangle: 金三角名称 - - total_performance: 总业绩 - - basic_performance: 基础业绩(新客业绩) - - cooperation_performance: 合作业绩(老客业绩) - - reward_performance: 奖励业绩(预留字段,目前为0) - - total_project_count: 项目数量总和(品项数量总和) - -## 耗卡相关表 - -#### lq_xh_pxmx (耗卡品项明细表) -| 字段名 | 数据类型 | 是否可空 | 字段说明 | 主键 | -|--------|----------|----------|----------|------| -| F_Id | varchar | NO | 明细编号 | PRI | -| glkdbh | varchar | YES | 关联开单编号 | | -| px | varchar | YES | 品项 | | -| pxmc | varchar | YES | 品项名称 | | -| pxjg | decimal | YES | 品项价格 | | -| xfzs | varchar | YES | 是否赠送 | | -| F_MemberId | varchar | YES | 会员id | | -| F_CreateTIme | datetime | YES | 创建时间 | | -| F_ProjectNumber | int | YES | 项目次数 | | -| F_IsEnabled | int | YES | 是否有效 | | -| F_SourceType | varchar | YES | 来源类型 | | -| F_TotalPrice | decimal | YES | 合计金额 | | - -**业务说明**: -- 记录每个耗卡记录的具体品项明细 -- 通过 `glkdbh` 字段关联开单记录表 -- 通过 `F_MemberId` 字段关联会员信息 -- 包含是否赠送、项目次数等耗卡特有字段 - -#### lq_xh_jksyj (耗卡健康师业绩表) -| 字段名 | 数据类型 | 是否可空 | 字段说明 | 主键 | -|--------|----------|----------|----------|------| -| F_Id | varchar | NO | 业绩编号 | PRI | -| glkdbh | varchar | YES | 关联开单编号 | | -| jks | varchar | YES | 健康师 | | -| jksxm | varchar | YES | 健康师姓名 | | -| jkszh | varchar | YES | 健康师账号 | | -| jksyj | varchar | YES | 健康师业绩 | | -| yjsj | datetime | YES | 业绩时间 | | -| F_jsjid | varchar | YES | 金三角id | | -| F_kdpxid | varchar | YES | 耗卡品项id | | -| F_LaborCost | decimal | YES | 手工费 | | -| F_kdpxNumber | decimal | YES | 耗卡品项次数 | | - -**业务说明**: -- 记录每个耗卡记录关联的健康师业绩明细 -- 通过 `glkdbh` 字段关联开单记录表 -- 通过 `F_kdpxid` 字段关联耗卡品项明细表 -- 包含手工费等耗卡特有字段 - -#### lq_xh_kjbsyj (耗卡科技部老师业绩表) -| 字段名 | 数据类型 | 是否可空 | 字段说明 | 主键 | -|--------|----------|----------|----------|------| -| F_Id | varchar | NO | 业绩编号 | PRI | -| glkdbh | varchar | YES | 关联开单编号 | | -| kjbls | varchar | YES | 科技部老师 | | -| kjblsxm | varchar | YES | 科技部老师姓名 | | -| kjblszh | varchar | YES | 科技部老师账号 | | -| kjblsyj | varchar | YES | 科技部老师业绩 | | -| yjsj | datetime | YES | 业绩时间 | | -| F_hkpxid | varchar | YES | 耗卡品项Id | | -| F_LaborCost | decimal | YES | 手工费 | | -| F_hdpxNumber | decimal | YES | 耗卡品相次数 | | - -**业务说明**: -- 记录每个耗卡记录关联的科技部老师业绩明细 -- 通过 `glkdbh` 字段关联开单记录表 -- 通过 `F_hkpxid` 字段关联耗卡品项明细表 -- 包含手工费等耗卡特有字段 +## 开发注意事项 ---- +### 1. 查询优化 +- 所有列表查询必须支持分页 +- 关键字段建立索引 +- 避免 N+1 查询,使用 JOIN 优化 -#### lq_yyjl (预约记录表) -| 字段名 | 数据类型 | 是否可空 | 字段说明 | 主键 | -|--------|----------|----------|----------|------| -| F_Id | varchar(50) | NO | 预约编号 | PRI | -| djmd | varchar(50) | YES | 单据门店 | | -| yyr | varchar(50) | YES | 邀约人 | | -| gklx | varchar(50) | YES | 顾客类型 | | -| yytyxm | varchar(200) | YES | 预约体验项目 | | -| czr | varchar(50) | YES | 操作人 | | -| czsj | datetime | YES | 操作时间 | | -| gk | varchar(50) | YES | 顾客 | | -| gkxm | varchar(50) | YES | 顾客姓名 | | -| yyjks | varchar(50) | YES | 预约健康师 | | -| yysj | datetime | YES | 预约开始时间 | | -| yyjs | datetime | YES | 预约结束时间 | | -| F_Status | varchar(50) | YES | 预约状态 | | - -**业务说明**: -- 记录客户预约服务的详细信息 -- 包含预约时间、健康师、体验项目等关键信息 -- 通过 `djmd` 字段关联门店信息 -- `F_Status` 字段用于记录预约状态(如:已预约、已完成、已取消等) +### 2. 数据一致性 +- 统计接口与列表接口使用相同的过滤条件 +- 所有数据查询必须添加园区权限过滤 +- DTO字段名称、大小写必须完全一致 ---- +### 3. 业务逻辑 +- 开单记录表是核心业务表,所有业务操作都围绕开单进行 +- 人员信息已迁移到系统用户表,查询时使用 `BASE_USER` +- 门店归属信息现在直接在 `lq_mdxx` 表中管理 -## 重要说明 +### 4. 字段映射 +- 数据库字段使用拼音首字母命名 +- 实体类字段使用驼峰命名 +- 查询时注意字段名映射关系 -1. **字段命名**:项目中使用拼音首字母命名,需要在此文档中详细说明 -2. **关联关系**:由于缺乏主外键约束,需要在文档中明确记录表间关联 -3. **业务含义**:每个字段的业务含义需要详细说明 -4. **数据字典**:枚举值、状态码等需要在此文档中记录 -5. **金额字段**:所有金额相关字段都使用varchar类型存储,需要注意数据类型转换 -6. **时间字段**:统一使用datetime类型,注意时区处理 +### 5. 权限控制 +- 所有数据查询必须添加园区权限过滤 +- 使用 `base_organize.DeleteMark` 过滤已删除数据 +- 接口必须校验 JWT Token --- -*文档创建时间:2024年* -*最后更新时间:2025年1月11日* +## 视图说明 + +### 业绩统计视图 +- `v_jsj_monthly_performance`: 金三角月度业绩统计 +- `v_jsj_monthly_summary`: 金三角月度业绩汇总 +- `v_personal_monthly_performance`: 个人业绩月度统计 + +### 开单相关视图 +- `v_order_detail_simple`: 开单详细记录视图 + +--- -- libgit2 0.21.4