_tmp_check_s2.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import pymysql
  2. DB = dict(
  3. host="123.60.180.165",
  4. port=3306,
  5. user="aidopremote",
  6. password="1234567890aiDOP#",
  7. database="aidopdev",
  8. charset="utf8mb4",
  9. )
  10. C = "utf8mb4_0900_ai_ci"
  11. tid = 797403760988229
  12. inner_where = "IFNULL(a.Status,'') <> '' AND a.tenant_id = %s"
  13. sql = f"""
  14. SELECT
  15. a.RecID AS Id,
  16. a.Priority AS Priority,
  17. a.WorkOrd AS WorkOrd,
  18. a.LotSerial AS LotSerial,
  19. a.IssueSite AS IssueSite,
  20. a.ItemNum AS ItemNum,
  21. b.Descr AS Descr,
  22. b.Descr1 AS Descr1,
  23. a.QtyOrded AS QtyOrded,
  24. (IFNULL(a.LocationStock, 0) + IFNULL(a.OpQtyCompleted, 0)) AS LocationStock,
  25. a.QtyCompleted AS QtyCompleted,
  26. s.PlanDate AS PlanDate,
  27. s.ProdDate AS ProdDate,
  28. LOWER(a.Status) AS Status,
  29. COALESCE(NULLIF(TRIM(a.`Domain`), ''), IFNULL(CAST(a.tenant_id AS CHAR), '')) AS Domain,
  30. a.Urgent AS Urgent
  31. FROM WorkOrdMaster a
  32. LEFT JOIN ItemMaster b ON a.ItemNum = b.ItemNum
  33. LEFT JOIN ReplenishmentWeekPlan r
  34. ON a.WorkOrd = r.ProductionOrder
  35. AND CAST(a.`Domain` AS CHAR(64)) = CAST(r.factory_id AS CHAR(64))
  36. LEFT JOIN crm_seorder se ON se.bill_no = a.SalesJob
  37. LEFT JOIN CustMaster cm ON cm.Cust = se.custom_no
  38. LEFT JOIN (
  39. SELECT `Domain`, WorkOrds, MIN(PlanDate) AS PlanDate, MIN(ProdDate) AS ProdDate
  40. FROM PeriodSequenceDet
  41. GROUP BY `Domain`, WorkOrds
  42. ) s ON CAST(a.`Domain` AS CHAR(64)) = CAST(s.`Domain` AS CHAR(64))
  43. AND a.WorkOrd = s.WorkOrds
  44. LEFT JOIN (
  45. SELECT morder_no, MAX(create_time) AS checktime
  46. FROM b_examine_result
  47. GROUP BY morder_no
  48. ) exm ON exm.morder_no = a.WorkOrd
  49. LEFT JOIN WorkOrdInStorage ins
  50. ON a.WorkOrd = ins.WorkOrd
  51. AND ins.Remark = '工单预留'
  52. WHERE {inner_where}
  53. LIMIT 5
  54. """
  55. conn = pymysql.connect(**DB)
  56. c = conn.cursor()
  57. try:
  58. c.execute(sql, (tid,))
  59. rows = c.fetchall()
  60. print("rows", len(rows), rows[:2])
  61. except Exception as e:
  62. print("ERROR", e)
  63. for bad_tid in [0, 1300000000001]:
  64. c.execute(f"SELECT COUNT(*) FROM ({sql.replace('LIMIT 5','')}) t", (bad_tid,))
  65. print("count tenant", bad_tid, c.fetchone()[0])
  66. conn.close()