| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #!/usr/bin/env python3
- """Complete UAT delivery-schedule business dates before S3/S4 rebuilds."""
- from __future__ import annotations
- import argparse
- import json
- from apply_sql_file import connect
- TENANTS = (838257186181189, 838257212780613, 838257237606469)
- def apply() -> dict[str, int]:
- conn = connect()
- counts: dict[str, int] = {}
- try:
- conn.begin()
- with conn.cursor() as cursor:
- for index, tenant_id in enumerate(TENANTS):
- cursor.execute(
- """
- UPDATE srm_polist_ds
- SET requestdate = DATE_SUB(NOW(), INTERVAL (5 + MOD(Id, 20)) DAY),
- submitdate = DATE_ADD(
- DATE_SUB(NOW(), INTERVAL (5 + MOD(Id, 20)) DAY),
- INTERVAL (1 + MOD(Id, 3)) DAY
- ),
- lastsentdate = DATE_ADD(
- DATE_SUB(NOW(), INTERVAL (5 + MOD(Id, 20)) DAY),
- INTERVAL (1 + MOD(Id, 3)) DAY
- ),
- sentqty = ROUND(schedqty * %s, 5),
- lastsentqty = ROUND(schedqty * %s, 5),
- restqty = GREATEST(schedqty - ROUND(schedqty * %s, 5), 0),
- status = 'S',
- remarks = CASE
- WHEN IFNULL(remarks,'') LIKE '%%UAT_GENERATOR:交货计划已发布%%' THEN remarks
- ELSE CONCAT(
- CASE WHEN IFNULL(remarks,'')='' THEN '' ELSE CONCAT(remarks, ';') END,
- 'UAT_GENERATOR:交货计划已发布'
- )
- END,
- updateuser = 'UAT_GENERATOR',
- updatetime = NOW()
- WHERE tenant_id = %s
- AND isactive = 1
- """,
- (
- ("0.85", "0.70", "0.92")[index],
- ("0.85", "0.70", "0.92")[index],
- ("0.85", "0.70", "0.92")[index],
- tenant_id,
- ),
- )
- counts[str(tenant_id)] = cursor.rowcount
- conn.commit()
- except Exception:
- conn.rollback()
- raise
- finally:
- conn.close()
- return counts
- def main() -> int:
- parser = argparse.ArgumentParser()
- parser.add_argument("--apply", action="store_true")
- args = parser.parse_args()
- result = {"mode": "dry-run", "tenants": list(TENANTS)}
- if args.apply:
- result = {"mode": "apply", "updated": apply()}
- print(json.dumps(result, ensure_ascii=False, indent=2))
- return 0
- if __name__ == "__main__":
- raise SystemExit(main())
|