-- ============================================================================= -- DWS 配置表初始数据 -- 版本: v3.0 -- 创建日期: 2026-02-01 -- 描述: 初始化配置表数据,包含绩效档位、等级定价、奖金规则、区域分类、技能映射 -- ============================================================================= -- ============================================================================= -- 1. cfg_performance_tier - 绩效档位配置(6档 + 新入职) -- 数据来源:DWS 数据库处理需求.md 第35-41行 -- 档位原因考虑 总业绩小时数阈值 专业课抽成(元/小时) 打赏课抽成 次月休假(天) -- 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% 休假自由 -- ============================================================================= 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 -- 0档 淘汰压力: H<100, 专业课抽成28元/小时, 打赏课抽成50%, 休假3天 ('T0', '0档-淘汰压力', 0, 0, 100, 28.00, 0.50, 3, FALSE, FALSE, '2000-01-01', '9999-12-31', '淘汰压力档: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', '9999-12-31', '及格档(重点激励):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', '9999-12-31', '良好档(重点激励):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', '9999-12-31', '优秀档: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', '9999-12-31', '卓越加速档(高端人才倾斜):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', '9999-12-31', '冠军加速档(高端人才倾斜):H≥220,专业课抽成8元/小时,打赏课抽成30%,休假自由'), -- 新入职档位: 首月特殊处理(按1档标准,但不参与排名) ('NEW', '新入职档位', -1, 0, NULL, 18.00, 0.40, 4, FALSE, TRUE, '2000-01-01', '9999-12-31', '新入职:月1日0点后入职者首月使用,按1档抽成标准,不参与排名奖金'); -- ============================================================================= -- 2. cfg_assistant_level_price - 助教等级定价 -- 说明: -- - level_code 来自 dim_assistant.assistant_level -- - 8=助教管理, 10=初级, 20=中级, 30=高级, 40=星级 -- - 价格为客户支付价格(对外价格),助教收入=客户支付-档位抽成 -- - 数据来源: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: 冲刺奖金,按业绩小时数阈值,不累计取最高档 -- - TOP_RANK: Top3排名奖金,按有效业绩排名,并列都算 -- ============================================================================= 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', '9999-12-31', '业绩≥190小时,获得300元冲刺奖金(不累计)'), -- 冲刺奖金: H>=220 得800元(优先级更高,覆盖190档) ('SPRINT', 'SPRINT_220', '冲刺奖金220', 220.00, NULL, 800.00, FALSE, 2, '2000-01-01', '9999-12-31', '业绩≥220小时,获得800元冲刺奖金(覆盖190档)'), -- Top1排名奖金: 1000元 ('TOP_RANK', 'TOP_1', 'Top1排名奖金', NULL, 1, 1000.00, FALSE, 0, '2000-01-01', '9999-12-31', '月度排名第一,获得1000元(并列都算)'), -- Top2排名奖金: 600元 ('TOP_RANK', 'TOP_2', 'Top2排名奖金', NULL, 2, 600.00, FALSE, 0, '2000-01-01', '9999-12-31', '月度排名第二,获得600元(并列都算)'), -- Top3排名奖金: 400元 ('TOP_RANK', 'TOP_3', 'Top3排名奖金', NULL, 3, 400.00, FALSE, 0, '2000-01-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, '附加课:超休/激励课,固定50元/小时'), -- 包厢课(如有) (2807440316432198, '包厢服务', 'BASE', '基础课', TRUE, '包厢服务:归入基础课统计'); -- ============================================================================= -- 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; $$;