feat: 根目录文档、脚本、gitignore

This commit is contained in:
2026-10-08 16:15:33 +08:00
commit e98660ce4e
284 changed files with 26838 additions and 0 deletions
+38
View File
@@ -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)}")