49 lines
1.8 KiB
Python
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()
|