Files
feiqiu-ETL/etl_billiards/scripts/show_performance_tier.py
2026-02-04 21:39:01 +08:00

49 lines
1.8 KiB
Python

# -*- 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()