# -*- coding: utf-8 -*- """显示绩效档位配置数据""" import os from pathlib import Path from dotenv import load_dotenv import psycopg2 def main(): load_dotenv(Path(__file__).parent.parent / ".env") dsn = os.getenv("PG_DSN") conn = psycopg2.connect(dsn) print("cfg_performance_tier 数据内容:") print("=" * 110) print(f"{'tier_code':<8} {'tier_name':<18} {'min_hours':<10} {'max_hours':<10} {'base_ded':<10} {'bonus_ded':<10} {'vacation':<10}") print("-" * 110) with conn.cursor() as cur: cur.execute(""" SELECT tier_code, tier_name, min_hours, max_hours, base_deduction, bonus_deduction_ratio, vacation_days, vacation_unlimited FROM billiards_dws.cfg_performance_tier ORDER BY tier_level """) for row in cur.fetchall(): max_h = str(row[3]) if row[3] else "NULL" vac = "自由" if row[7] else str(row[6]) + "天" print(f"{row[0]:<8} {row[1]:<18} {row[2]:<10} {max_h:<10} {row[4]:<10} {row[5]*100:.0f}%{'':<7} {vac:<10}") print("=" * 110) print("\n数据来源依据: DWS 数据库处理需求.md 第35-41行") print(""" | 档位 | 总业绩小时数阈值 | 专业课抽成 | 打赏课抽成 | 次月休假 | |------|------------------|-----------|-----------|----------| | 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% | 休假自由 | """) conn.close() if __name__ == "__main__": main()