389 lines
15 KiB
SQL
389 lines
15 KiB
SQL
-- =============================================================================
|
||
-- DWS 配置表初始数据
|
||
-- 版本: v3.0
|
||
-- 创建日期: 2026-02-01
|
||
-- 描述: 初始化配置表数据,包含绩效档位、等级定价、奖金规则、区域分类、技能映射
|
||
-- =============================================================================
|
||
|
||
-- NOTE: 当前数据库 cfg_* 配置表为空(以数据库现状为准)
|
||
-- 下方默认配置仅作参考,已整体注释
|
||
/*
|
||
|
||
-- =============================================================================
|
||
-- 1. cfg_performance_tier - 绩效档位配置(含历史口径)
|
||
-- 数据来源:DWS 数据库处理需求.md
|
||
-- 旧方案(历史口径,至2026-02-28):
|
||
-- 0档 淘汰压力 H <100 28 50% 3
|
||
-- 1档 及格档(重点激励) 100≤ H <130 18 40% 4
|
||
-- 2档 良好档(重点激励) 130≤ H <160 15 38% 4
|
||
-- 3档 优秀档 160≤ H <190 13 35% 5
|
||
-- 4档 卓越加速档(高端人才倾斜) 190≤ H <220 10 33% 6
|
||
-- 5档 冠军加速档(高端人才倾斜) H ≥220 8 30% 休假自由
|
||
-- 新方案(2026-03-01起):
|
||
-- 0档 淘汰压力 H <120 28 50% 3
|
||
-- 1档 及格档 120≤ H <150 18 40% 4
|
||
-- 2档 良好档 150≤ H <180 13 35% 5
|
||
-- 3档 优秀档 180≤ H <210 10 30% 6
|
||
-- 4档 销冠竞争 H ≥210 8 25% 休假自由
|
||
-- =============================================================================
|
||
TRUNCATE TABLE billiards_dws.cfg_performance_tier RESTART IDENTITY CASCADE;
|
||
|
||
INSERT INTO billiards_dws.cfg_performance_tier (
|
||
tier_code, tier_name, tier_level,
|
||
min_hours, max_hours,
|
||
base_deduction, bonus_deduction_ratio, vacation_days, vacation_unlimited,
|
||
is_new_hire_tier, effective_from, effective_to, description
|
||
) VALUES
|
||
-- 旧方案(至2026-02-28)
|
||
-- 0档 淘汰压力: H<100, 专业课抽成28元/小时, 打赏课抽成50%, 休假3天
|
||
('T0', '0档-淘汰压力', 0,
|
||
0, 100,
|
||
28.00, 0.50, 3, FALSE,
|
||
FALSE, '2000-01-01', '2026-02-28',
|
||
'旧方案:H<100,专业课抽成28元/小时,打赏课抽成50%,休假3天'),
|
||
|
||
-- 1档 及格档: 100≤H<130, 专业课抽成18元/小时, 打赏课抽成40%, 休假4天
|
||
('T1', '1档-及格档', 1,
|
||
100, 130,
|
||
18.00, 0.40, 4, FALSE,
|
||
FALSE, '2000-01-01', '2026-02-28',
|
||
'旧方案:100≤H<130,专业课抽成18元/小时,打赏课抽成40%,休假4天'),
|
||
|
||
-- 2档 良好档: 130≤H<160, 专业课抽成15元/小时, 打赏课抽成38%, 休假4天
|
||
('T2', '2档-良好档', 2,
|
||
130, 160,
|
||
15.00, 0.38, 4, FALSE,
|
||
FALSE, '2000-01-01', '2026-02-28',
|
||
'旧方案:130≤H<160,专业课抽成15元/小时,打赏课抽成38%,休假4天'),
|
||
|
||
-- 3档 优秀档: 160≤H<190, 专业课抽成13元/小时, 打赏课抽成35%, 休假5天
|
||
('T3', '3档-优秀档', 3,
|
||
160, 190,
|
||
13.00, 0.35, 5, FALSE,
|
||
FALSE, '2000-01-01', '2026-02-28',
|
||
'旧方案:160≤H<190,专业课抽成13元/小时,打赏课抽成35%,休假5天'),
|
||
|
||
-- 4档 卓越加速档: 190≤H<220, 专业课抽成10元/小时, 打赏课抽成33%, 休假6天
|
||
('T4', '4档-卓越加速档', 4,
|
||
190, 220,
|
||
10.00, 0.33, 6, FALSE,
|
||
FALSE, '2000-01-01', '2026-02-28',
|
||
'旧方案:190≤H<220,专业课抽成10元/小时,打赏课抽成33%,休假6天'),
|
||
|
||
-- 5档 冠军加速档: H≥220, 专业课抽成8元/小时, 打赏课抽成30%, 休假自由
|
||
('T5', '5档-冠军加速档', 5,
|
||
220, NULL,
|
||
8.00, 0.30, 0, TRUE,
|
||
FALSE, '2000-01-01', '2026-02-28',
|
||
'旧方案:H≥220,专业课抽成8元/小时,打赏课抽成30%,休假自由'),
|
||
|
||
-- 新方案(2026-03-01起)
|
||
-- 0档 淘汰压力: H<120, 专业课抽成28元/小时, 打赏课抽成50%, 休假3天
|
||
('T0', '0档-淘汰压力', 0,
|
||
0, 120,
|
||
28.00, 0.50, 3, FALSE,
|
||
FALSE, '2026-03-01', '9999-12-31',
|
||
'新方案:H<120,专业课抽成28元/小时,打赏课抽成50%,休假3天'),
|
||
|
||
-- 1档 及格档: 120≤H<150, 专业课抽成18元/小时, 打赏课抽成40%, 休假4天
|
||
('T1', '1档-及格档', 1,
|
||
120, 150,
|
||
18.00, 0.40, 4, FALSE,
|
||
FALSE, '2026-03-01', '9999-12-31',
|
||
'新方案:120≤H<150,专业课抽成18元/小时,打赏课抽成40%,休假4天'),
|
||
|
||
-- 2档 良好档: 150≤H<180, 专业课抽成13元/小时, 打赏课抽成35%, 休假5天
|
||
('T2', '2档-良好档', 2,
|
||
150, 180,
|
||
13.00, 0.35, 5, FALSE,
|
||
FALSE, '2026-03-01', '9999-12-31',
|
||
'新方案:150≤H<180,专业课抽成13元/小时,打赏课抽成35%,休假5天'),
|
||
|
||
-- 3档 优秀档: 180≤H<210, 专业课抽成10元/小时, 打赏课抽成30%, 休假6天
|
||
('T3', '3档-优秀档', 3,
|
||
180, 210,
|
||
10.00, 0.30, 6, FALSE,
|
||
FALSE, '2026-03-01', '9999-12-31',
|
||
'新方案:180≤H<210,专业课抽成10元/小时,打赏课抽成30%,休假6天'),
|
||
|
||
-- 4档 销冠竞争: H≥210, 专业课抽成8元/小时, 打赏课抽成25%, 休假自由
|
||
('T4', '4档-销冠竞争', 4,
|
||
210, NULL,
|
||
8.00, 0.25, 0, TRUE,
|
||
FALSE, '2026-03-01', '9999-12-31',
|
||
'新方案:H≥210,专业课抽成8元/小时,打赏课抽成25%,休假自由');
|
||
|
||
|
||
-- =============================================================================
|
||
-- 2. cfg_assistant_level_price - 助教等级定价
|
||
-- 说明:
|
||
-- - level_code 来自 dim_assistant.assistant_level
|
||
-- - 8=助教管理, 10=初级, 20=中级, 30=高级, 40=星级
|
||
-- - 价格为客户支付价格(对外价格),助教收入=客户支付-档位抽成
|
||
-- - 包厢课基础课统一138元/小时(不随等级变化)
|
||
-- - 数据来源:DWS 数据库处理需求.md
|
||
-- =============================================================================
|
||
TRUNCATE TABLE billiards_dws.cfg_assistant_level_price RESTART IDENTITY CASCADE;
|
||
|
||
INSERT INTO billiards_dws.cfg_assistant_level_price (
|
||
level_code, level_name,
|
||
base_course_price, bonus_course_price,
|
||
effective_from, effective_to, description
|
||
) VALUES
|
||
-- 初级助教:基础课对客户收费98元/小时
|
||
(10, '初级',
|
||
98.00, 190.00,
|
||
'2000-01-01', '9999-12-31',
|
||
'初级助教:基础课98元/时,附加课190元/时(客户支付价格)'),
|
||
|
||
-- 中级助教:基础课对客户收费108元/小时
|
||
(20, '中级',
|
||
108.00, 190.00,
|
||
'2000-01-01', '9999-12-31',
|
||
'中级助教:基础课108元/时,附加课190元/时(客户支付价格)'),
|
||
|
||
-- 高级助教:基础课对客户收费118元/小时
|
||
(30, '高级',
|
||
118.00, 190.00,
|
||
'2000-01-01', '9999-12-31',
|
||
'高级助教:基础课118元/时,附加课190元/时(客户支付价格)'),
|
||
|
||
-- 星级助教:基础课对客户收费138元/小时
|
||
(40, '星级',
|
||
138.00, 190.00,
|
||
'2000-01-01', '9999-12-31',
|
||
'星级助教:基础课138元/时,附加课190元/时(客户支付价格)'),
|
||
|
||
-- 助教管理:level_code=8,通常不参与客户服务计费,此处设置默认值
|
||
(8, '助教管理',
|
||
98.00, 190.00,
|
||
'2000-01-01', '9999-12-31',
|
||
'助教管理:不参与客户服务计费,默认按初级价格');
|
||
|
||
|
||
-- =============================================================================
|
||
-- 3. cfg_bonus_rules - 奖金规则配置
|
||
-- 说明:
|
||
-- - SPRINT: 冲刺奖金(历史口径,至2026-02-28)
|
||
-- - TOP_RANK: Top3排名奖金(2026-03-01起)
|
||
-- =============================================================================
|
||
TRUNCATE TABLE billiards_dws.cfg_bonus_rules RESTART IDENTITY CASCADE;
|
||
|
||
INSERT INTO billiards_dws.cfg_bonus_rules (
|
||
rule_type, rule_code, rule_name,
|
||
threshold_hours, rank_position, bonus_amount,
|
||
is_cumulative, priority,
|
||
effective_from, effective_to, description
|
||
) VALUES
|
||
-- 冲刺奖金: H>=190 得300元(历史口径)
|
||
('SPRINT', 'SPRINT_190', '冲刺奖金190',
|
||
190.00, NULL, 300.00,
|
||
FALSE, 1,
|
||
'2000-01-01', '2026-02-28',
|
||
'历史口径:业绩≥190小时,获得300元冲刺奖金(不累计)'),
|
||
|
||
-- 冲刺奖金: H>=220 得800元(历史口径,优先级更高,覆盖190档)
|
||
('SPRINT', 'SPRINT_220', '冲刺奖金220',
|
||
220.00, NULL, 800.00,
|
||
FALSE, 2,
|
||
'2000-01-01', '2026-02-28',
|
||
'历史口径:业绩≥220小时,获得800元冲刺奖金(覆盖190档)'),
|
||
|
||
-- Top1排名奖金: 1000元(2026-03-01起)
|
||
('TOP_RANK', 'TOP_1', 'Top1排名奖金',
|
||
NULL, 1, 1000.00,
|
||
FALSE, 0,
|
||
'2026-03-01', '9999-12-31',
|
||
'月度排名第一,获得1000元(并列都算)'),
|
||
|
||
-- Top2排名奖金: 600元(2026-03-01起)
|
||
('TOP_RANK', 'TOP_2', 'Top2排名奖金',
|
||
NULL, 2, 600.00,
|
||
FALSE, 0,
|
||
'2026-03-01', '9999-12-31',
|
||
'月度排名第二,获得600元(并列都算)'),
|
||
|
||
-- Top3排名奖金: 400元(2026-03-01起)
|
||
('TOP_RANK', 'TOP_3', 'Top3排名奖金',
|
||
NULL, 3, 400.00,
|
||
FALSE, 0,
|
||
'2026-03-01', '9999-12-31',
|
||
'月度排名第三,获得400元(并列都算)');
|
||
|
||
|
||
-- =============================================================================
|
||
-- 4. cfg_area_category - 台区分类映射
|
||
-- 说明:
|
||
-- - 将 dim_table.site_table_area_name 映射到财务报表区域分类
|
||
-- - 映射规则: 精确匹配 > 模糊匹配 > 默认兜底
|
||
-- - 数据来源: BD_manual_dim_table.md 中的 site_table_area_name 实际分布
|
||
-- 分类设计:
|
||
-- - BILLIARD: 台球散台(A区/B区/C区/TV台)
|
||
-- - BILLIARD_VIP: 台球VIP包厢
|
||
-- - SNOOKER: 斯诺克区
|
||
-- - MAHJONG: 麻将区
|
||
-- - KTV: K歌/KTV
|
||
-- - SPECIAL: 特殊(补时长等)
|
||
-- - OTHER: 其他
|
||
-- =============================================================================
|
||
TRUNCATE TABLE billiards_dws.cfg_area_category RESTART IDENTITY CASCADE;
|
||
|
||
INSERT INTO billiards_dws.cfg_area_category (
|
||
source_area_name, category_code, category_name,
|
||
match_type, match_priority, is_active, description
|
||
) VALUES
|
||
-- ============ 台球散台区(精确匹配)============
|
||
('A区', 'BILLIARD', '台球散台',
|
||
'EXACT', 10, TRUE, '台球散台:A区(18台)- 中八/追分'),
|
||
('B区', 'BILLIARD', '台球散台',
|
||
'EXACT', 10, TRUE, '台球散台:B区(15台)- 中八/追分'),
|
||
('C区', 'BILLIARD', '台球散台',
|
||
'EXACT', 10, TRUE, '台球散台:C区(6台)- 中八/追分'),
|
||
('TV台', 'BILLIARD', '台球散台',
|
||
'EXACT', 10, TRUE, '台球散台:TV台(1台)- 中八/追分'),
|
||
|
||
-- ============ 台球VIP包厢(精确匹配)============
|
||
('VIP包厢', 'BILLIARD_VIP', '台球VIP',
|
||
'EXACT', 10, TRUE, '台球VIP:VIP包厢(4台)- V1-V4中八, V5斯诺克'),
|
||
|
||
-- ============ 斯诺克区(精确匹配)============
|
||
('斯诺克区', 'SNOOKER', '斯诺克',
|
||
'EXACT', 10, TRUE, '斯诺克:斯诺克区(4台)'),
|
||
|
||
-- ============ 麻将区(精确匹配)============
|
||
('麻将房', 'MAHJONG', '麻将棋牌',
|
||
'EXACT', 10, TRUE, '麻将棋牌:麻将房(5台)'),
|
||
('M7', 'MAHJONG', '麻将棋牌',
|
||
'EXACT', 10, TRUE, '麻将棋牌:M7(2台)'),
|
||
('M8', 'MAHJONG', '麻将棋牌',
|
||
'EXACT', 10, TRUE, '麻将棋牌:M8(1台)'),
|
||
('666', 'MAHJONG', '麻将棋牌',
|
||
'EXACT', 10, TRUE, '麻将棋牌:666(2台)'),
|
||
('发财', 'MAHJONG', '麻将棋牌',
|
||
'EXACT', 10, TRUE, '麻将棋牌:发财(1台)'),
|
||
|
||
-- ============ KTV/K包(精确匹配)============
|
||
('K包', 'KTV', 'K歌娱乐',
|
||
'EXACT', 10, TRUE, 'K歌娱乐:K包(4台)'),
|
||
('k包活动区', 'KTV', 'K歌娱乐',
|
||
'EXACT', 10, TRUE, 'K歌娱乐:k包活动区(2台)'),
|
||
('幸会158', 'KTV', 'K歌娱乐',
|
||
'EXACT', 10, TRUE, 'K歌娱乐:幸会158(2台)'),
|
||
|
||
-- ============ 特殊区域(精确匹配)============
|
||
('补时长', 'SPECIAL', '补时长',
|
||
'EXACT', 10, TRUE, '特殊:补时长(7台)- 用于时长补录'),
|
||
|
||
-- ============ 模糊匹配规则(优先级较低)============
|
||
('%VIP%', 'BILLIARD_VIP', '台球VIP',
|
||
'LIKE', 50, TRUE, '模糊匹配:包含"VIP"的区域'),
|
||
('%斯诺克%', 'SNOOKER', '斯诺克',
|
||
'LIKE', 50, TRUE, '模糊匹配:包含"斯诺克"的区域'),
|
||
('%麻将%', 'MAHJONG', '麻将棋牌',
|
||
'LIKE', 50, TRUE, '模糊匹配:包含"麻将"的区域'),
|
||
('%K包%', 'KTV', 'K歌娱乐',
|
||
'LIKE', 50, TRUE, '模糊匹配:包含"K包"的区域'),
|
||
('%KTV%', 'KTV', 'K歌娱乐',
|
||
'LIKE', 50, TRUE, '模糊匹配:包含"KTV"的区域'),
|
||
|
||
-- ============ 默认兜底(优先级最低)============
|
||
('DEFAULT', 'OTHER', '其他',
|
||
'DEFAULT', 999, TRUE, '兜底规则:无法匹配的区域归入其他');
|
||
|
||
|
||
-- =============================================================================
|
||
-- 5. cfg_skill_type - 技能→课程类型映射
|
||
-- 说明:
|
||
-- - 将 skill_id 映射到课程类型
|
||
-- - 基础课/陪打: skill_id = 2791903611396869
|
||
-- - 附加课/超休: skill_id = 2807440316432197
|
||
-- - 避免依赖 skill_name 文本匹配
|
||
-- =============================================================================
|
||
TRUNCATE TABLE billiards_dws.cfg_skill_type RESTART IDENTITY CASCADE;
|
||
|
||
INSERT INTO billiards_dws.cfg_skill_type (
|
||
skill_id, skill_name,
|
||
course_type_code, course_type_name,
|
||
is_active, description
|
||
) VALUES
|
||
-- 基础课/陪打
|
||
(2791903611396869, '台球基础陪打',
|
||
'BASE', '基础课',
|
||
TRUE, '基础课:陪打服务,按助教等级计价'),
|
||
|
||
-- 附加课/超休
|
||
(2807440316432197, '台球超休服务',
|
||
'BONUS', '附加课',
|
||
TRUE, '附加课:超休/激励课,固定190元/小时'),
|
||
|
||
-- 包厢课(如有)
|
||
(2807440316432198, '包厢服务',
|
||
'BASE', '基础课',
|
||
TRUE, '包厢服务:归入基础课统计,统一按138元/小时计价');
|
||
|
||
|
||
-- =============================================================================
|
||
-- 6. 优惠类型配置(用于财务优惠明细分析)
|
||
-- 说明: 定义各类优惠的代码和名称,便于后续分析
|
||
-- =============================================================================
|
||
-- 此配置作为代码常量使用,不单独建表
|
||
-- GROUPBUY - 团购优惠
|
||
-- VIP - 会员折扣
|
||
-- GIFT_CARD - 赠送卡抵扣
|
||
-- MANUAL - 手动调整
|
||
-- ROUNDING - 抹零
|
||
-- BIG_CUSTOMER - 大客户优惠(待抽样分析确认)
|
||
-- OTHER - 其他优惠
|
||
|
||
|
||
-- =============================================================================
|
||
-- 7. 支出类型配置(用于Excel导入)
|
||
-- 说明: 定义各类支出的代码和名称
|
||
-- =============================================================================
|
||
-- 此配置作为代码常量使用,不单独建表
|
||
-- RENT - 房租
|
||
-- UTILITY - 水电费
|
||
-- PROPERTY - 物业费
|
||
-- SALARY - 工资
|
||
-- REIMBURSE - 报销
|
||
-- PLATFORM_FEE - 平台服务费
|
||
-- OTHER - 其他支出
|
||
|
||
|
||
-- =============================================================================
|
||
-- 8. 平台类型配置(用于Excel导入)
|
||
-- 说明: 定义各平台的代码和名称
|
||
-- =============================================================================
|
||
-- 此配置作为代码常量使用,不单独建表
|
||
-- MEITUAN - 美团
|
||
-- DOUYIN - 抖音
|
||
-- DIANPING - 大众点评
|
||
-- OTHER - 其他平台
|
||
|
||
|
||
-- =============================================================================
|
||
-- 验证数据插入
|
||
-- =============================================================================
|
||
DO $$
|
||
DECLARE
|
||
v_tier_count INTEGER;
|
||
v_price_count INTEGER;
|
||
v_bonus_count INTEGER;
|
||
v_area_count INTEGER;
|
||
v_skill_count INTEGER;
|
||
BEGIN
|
||
SELECT COUNT(*) INTO v_tier_count FROM billiards_dws.cfg_performance_tier;
|
||
SELECT COUNT(*) INTO v_price_count FROM billiards_dws.cfg_assistant_level_price;
|
||
SELECT COUNT(*) INTO v_bonus_count FROM billiards_dws.cfg_bonus_rules;
|
||
SELECT COUNT(*) INTO v_area_count FROM billiards_dws.cfg_area_category;
|
||
SELECT COUNT(*) INTO v_skill_count FROM billiards_dws.cfg_skill_type;
|
||
|
||
RAISE NOTICE '配置数据初始化完成:';
|
||
RAISE NOTICE ' - cfg_performance_tier: % 条', v_tier_count;
|
||
RAISE NOTICE ' - cfg_assistant_level_price: % 条', v_price_count;
|
||
RAISE NOTICE ' - cfg_bonus_rules: % 条', v_bonus_count;
|
||
RAISE NOTICE ' - cfg_area_category: % 条', v_area_count;
|
||
RAISE NOTICE ' - cfg_skill_type: % 条', v_skill_count;
|
||
END;
|
||
$$;
|
||
*/ |