Files
zentao-flow/tmp/wdx.py
T

24 lines
1.3 KiB
Python

# -*- 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))
stories = q(f"SELECT id FROM zt_story WHERE product IN ({prod_in}) AND releaseddate>='2026-06-01' AND releaseddate<'2026-07-01' AND deleted='0'")
sids = [s[0] for s in stories]
print(f"139产品={prods} 6月上线需求={len(sids)}个")
sid_in = ','.join(map(str, sids)) or '0'
r = q(f"SELECT COUNT(*), SUM(estimate) FROM zt_task WHERE story IN ({sid_in}) AND type='devel' AND deleted='0' AND status NOT IN ('cancel','closed')")[0]
print(f"devel任务(排除cancel/closed): {r[0]}个 Σestimate={r[1]}")
print("按状态分布:")
for row in q(f"SELECT status, COUNT(*), IFNULL(SUM(estimate),0) FROM zt_task WHERE story IN ({sid_in}) AND type='devel' AND deleted='0' GROUP BY status"):
print(" ", row)
# 含所有状态
r2 = q(f"SELECT COUNT(*), SUM(estimate) FROM zt_task WHERE story IN ({sid_in}) AND type='devel' AND deleted='0'")[0]
print(f"devel任务(全部状态): {r2[0]}个 Σestimate={r2[1]}")