feat: 根目录文档、脚本、gitignore
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import io, sys, pymysql
|
||||
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
|
||||
conn = pymysql.connect(host='192.168.1.161', user='devgps', password='dev@2021GPS',
|
||||
database='zentao_dev_2026', charset='utf8mb4')
|
||||
cur = conn.cursor()
|
||||
def q(sql):
|
||||
cur.execute(sql); return cur.fetchall()
|
||||
|
||||
prods = [r[0] for r in q("SELECT id FROM zt_product WHERE program=139")]
|
||||
prod_in = ','.join(map(str, prods))
|
||||
projs = [r[0] for r in q(f"SELECT DISTINCT project FROM zt_projectproduct WHERE product IN ({prod_in})")]
|
||||
proj_in = ','.join(map(str, projs))
|
||||
execs = [r[0] for r in q(f"SELECT DISTINCT execution FROM zt_executionproject WHERE project IN ({proj_in})")]
|
||||
# 当月窗口内(begin 或 end 落 6 月,同 getTeamAccountByExecutionIds)
|
||||
exec_in = ','.join(map(str, execs))
|
||||
win = [r[0] for r in q(f"""SELECT id FROM zt_project WHERE id IN ({exec_in}) AND deleted='0'
|
||||
AND ((begin>='2026-06-01' AND begin<='2026-06-30') OR (end>='2026-06-01' AND end<='2026-06-30'))""")]
|
||||
print("6月在窗执行:", win)
|
||||
win_in = ','.join(map(str, win)) or '0'
|
||||
memb = q(f"SELECT DISTINCT account FROM zt_team WHERE type='execution' AND root IN ({win_in})")
|
||||
accs = [m[0] for m in memb]
|
||||
acc_in = ','.join(f"'{a}'" for a in accs) or "''"
|
||||
kfz = q(f"SELECT account, nickname FROM zt_user WHERE account IN ({acc_in}) AND user_type=3 AND deleted='0'")
|
||||
print(f"团队 KFZ 成员 {len(kfz)} 人:", [k[1] for k in kfz])
|
||||
|
||||
names = [k[1] for k in kfz]
|
||||
name_in = ','.join(f"'{n}'" for n in names) or "''"
|
||||
lv = q(f"""SELECT SUM(a.apply_days) FROM os_system.it_approval a WHERE a.name IN ({name_in})
|
||||
AND ((date(a.apply_time_start) BETWEEN '2026-06-01' AND '2026-06-30') OR (date(a.apply_time_end) BETWEEN '2026-06-01' AND '2026-06-30'))""")[0][0]
|
||||
lv = float(lv or 0)
|
||||
print(f"团队请假 {lv}h → {lv/8} 天")
|
||||
|
||||
wd, n = 22, len(kfz)
|
||||
target = (wd*n - lv/8)*5/n if n else 0
|
||||
consumed = 126.0
|
||||
rate = consumed/target*100 if target else 0
|
||||
print(f"\n陈浩(139 车服): 团队 {n} 人, 达标工时=({wd}×{n}−{lv}/8)×5÷{n} = {target:.2f}h, consumed={consumed} → {rate:.1f}% → 得分 {20 if rate>=100 else max(0,20-int(100-rate)*2)}")
|
||||
Reference in New Issue
Block a user