| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- # -*- coding: utf-8 -*-
- import re
- import pyodbc
- CONN = (
- "DRIVER={ODBC Driver 17 for SQL Server};"
- "SERVER=123.60.180.165,1433;DATABASE=dopdemorq;"
- "UID=dopsa;PWD=5h3n9)uN;TrustServerCertificate=yes"
- )
- PROCS = [
- "pr_SFM_SaveWorkOrdChooseByOpData",
- "pr_SFM_EndWorkOrdByOp",
- "pr_MES_CloseWorkOrders",
- "pr_WMS_SavePrepareMaterial",
- "pr_WMS_SaveWorkOrdMaterialIssue",
- "pr_SFM_InventoryMesCartonTransactionProcessingByOp",
- "pr_SFM_SaveEmployeeWorkStatus",
- "pr_SFM_LinePlanedStart",
- "pr_SFM_LinePlanedEnd",
- ]
- def main() -> None:
- conn = pyodbc.connect(CONN, timeout=60)
- cur = conn.cursor()
- for name in PROCS:
- cur.execute("SELECT OBJECT_DEFINITION(OBJECT_ID(?))", name)
- text = cur.fetchone()[0] or ""
- print("====", name)
- for m in re.finditer(r"(?i)Status\s*=\s*N?'([^']{1,20})'", text):
- i = m.start()
- ctx = re.sub(r"\s+", " ", text[max(0, i - 90) : i + 50])
- if any(
- t in ctx
- for t in (
- "WorkOrd",
- "Nbr",
- "Missed",
- "LineStatus",
- "Period",
- "Employee",
- "Routing",
- )
- ):
- print(" ", ctx[-140:])
- for m in re.finditer(r"(?i)WorkStatus\s*=\s*N?'([^']{1,30})'", text):
- i = m.start()
- ctx = re.sub(r"\s+", " ", text[max(0, i - 70) : i + 40])
- print(" WS", ctx)
- conn.close()
- if __name__ == "__main__":
- main()
|