_check_close_gaps.py 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #!/usr/bin/env python3
  2. import json
  3. import pymysql
  4. T = 797403760988229
  5. B = "MPO482024102300001"
  6. CONN = dict(
  7. host="123.60.180.165",
  8. port=3306,
  9. user="aidopremote",
  10. password="1234567890aiDOP#",
  11. database="aidopdev",
  12. charset="utf8mb4",
  13. cursorclass=pymysql.cursors.DictCursor,
  14. )
  15. def main():
  16. with pymysql.connect(**CONN) as conn:
  17. with conn.cursor() as c:
  18. checks = {}
  19. c.execute(
  20. "SELECT COUNT(*) AS c FROM dwd_ship_trans WHERE tenant_id=%s AND order_no=%s",
  21. (T, B),
  22. )
  23. checks["dwd_ship_main"] = c.fetchone()["c"]
  24. c.execute(
  25. """
  26. SELECT job_code, status, batch_id, start_time
  27. FROM mdp_transform_run_log
  28. WHERE job_code='S1_MDP_SYNC_TRANSFORM'
  29. ORDER BY start_time DESC LIMIT 3
  30. """
  31. )
  32. checks["s1_mdp_runs"] = c.fetchall()
  33. c.execute(
  34. """
  35. SELECT COUNT(*) AS c FROM ic_demandschedule
  36. WHERE tenant_id=%s AND IFNULL(status,'')='P' AND IFNULL(tosechedqty,0)>0
  37. AND (IFNULL(ishistoryversion,'')='' OR ishistoryversion='N') AND IFNULL(IsDeleted,0)=0
  38. """,
  39. (T,),
  40. )
  41. checks["demand_published"] = c.fetchone()["c"]
  42. c.execute(
  43. "SELECT Id, itemnum, toschedqty, status, ishistoryversion FROM ic_demandschedule WHERE tenant_id=%s LIMIT 8",
  44. (T,),
  45. )
  46. checks["demand_rows"] = c.fetchall()
  47. c.execute(
  48. "SELECT entry_seq, progress FROM crm_seorderentry WHERE tenant_id=%s AND bill_no=%s",
  49. (T, B),
  50. )
  51. checks["order_progress"] = c.fetchall()
  52. c.execute("SELECT COUNT(*) AS c FROM srm_polist_ds WHERE tenant_id=%s", (T,))
  53. checks["ds_total"] = c.fetchone()["c"]
  54. c.execute(
  55. """
  56. SELECT sp.itemnum, sp.suppliercode, COUNT(*) AS po_lines
  57. FROM srm_purchase sp
  58. INNER JOIN PurOrdMaster m ON m.tenant_id=%s
  59. INNER JOIN PurOrdDetail d ON d.PurOrdRecID=m.RecID AND d.ItemNum=sp.itemnum
  60. WHERE sp.tenant_id=%s AND IFNULL(sp.IsDeleted,0)=0
  61. AND (sp.is_active IN ('是','Y','1','y') OR sp.is_active=1)
  62. GROUP BY sp.itemnum, sp.suppliercode
  63. LIMIT 5
  64. """,
  65. (T, T),
  66. )
  67. checks["source_po_items"] = c.fetchall()
  68. print(json.dumps(checks, ensure_ascii=False, indent=2, default=str))
  69. if __name__ == "__main__":
  70. main()