37 lines
1020 B
Python
37 lines
1020 B
Python
from pathlib import Path
|
|
import sys
|
|
|
|
from sqlalchemy import text
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
sys.path.insert(0, str(ROOT))
|
|
|
|
from app.database import engine # noqa: E402
|
|
|
|
|
|
def main() -> None:
|
|
with engine.begin() as conn:
|
|
result = conn.execute(
|
|
text(
|
|
"""
|
|
UPDATE work_session_devices d
|
|
JOIN work_sessions s ON s.id = d.session_id
|
|
SET d.released_at = NULL,
|
|
d.released_by = NULL,
|
|
d.release_reason = NULL
|
|
WHERE s.status = 'reporting'
|
|
AND d.release_reason IN ('下班释放占用', '历史非活动记录迁移释放占用')
|
|
AND NOT EXISTS (
|
|
SELECT 1
|
|
FROM production_reports r
|
|
WHERE r.session_id = s.id
|
|
)
|
|
"""
|
|
)
|
|
)
|
|
print(f"restored reporting mold locks: {result.rowcount}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|