52 lines
1.6 KiB
Python
52 lines
1.6 KiB
Python
#!/usr/bin/env python3
|
||
"""将 docs/sop-templates/SOP-CC-001-E01-01.html 写入工艺 SOP-CC-001-E01-01 的 sop_content。
|
||
|
||
生产环境请执行 docs/sql/2026-08-25-seed-sop-cc-001-content.sql,勿依赖本脚本。
|
||
"""
|
||
from __future__ import annotations
|
||
|
||
import sys
|
||
from datetime import datetime
|
||
from pathlib import Path
|
||
|
||
ROOT = Path(__file__).resolve().parents[1]
|
||
sys.path.insert(0, str(ROOT / "backend"))
|
||
|
||
from sqlalchemy import create_engine, text # noqa: E402
|
||
from app.core.config import settings # noqa: E402
|
||
|
||
PROCESS_CODE = "SOP-CC-001-E01-01"
|
||
HTML_PATH = ROOT / "docs" / "sop-templates" / "SOP-CC-001-E01-01.html"
|
||
|
||
|
||
def main() -> None:
|
||
html = HTML_PATH.read_text(encoding="utf-8")
|
||
engine = create_engine(settings.DATABASE_URL)
|
||
with engine.begin() as conn:
|
||
result = conn.execute(
|
||
text(
|
||
"""
|
||
UPDATE biz_process
|
||
SET sop_content = :html,
|
||
update_time = :now
|
||
WHERE process_code = :code
|
||
AND del_flag = 0
|
||
"""
|
||
),
|
||
{"html": html, "now": datetime.now(), "code": PROCESS_CODE},
|
||
)
|
||
if result.rowcount < 1:
|
||
raise SystemExit(f"未找到工艺 process_code={PROCESS_CODE}")
|
||
row = conn.execute(
|
||
text(
|
||
"SELECT id, process_name, LENGTH(sop_content) AS n "
|
||
"FROM biz_process WHERE process_code=:code AND del_flag=0"
|
||
),
|
||
{"code": PROCESS_CODE},
|
||
).fetchone()
|
||
print(f"已更新 {PROCESS_CODE}({row[1]}),sop_content 长度 {row[2]}")
|
||
|
||
|
||
if __name__ == "__main__":
|
||
main()
|