| .. | ||
| __init__.py | ||
| mapping.py | ||
| query_service.py | ||
| reader.py | ||
| README.md | ||
| relationship_audit.py | ||
| staging.py | ||
| sync_service.py | ||
| task_service.py | ||
| worker.py | ||
T+ 只读同步
AI 摘要:读取外部 SQL Server 的原始快照,并管理持久化任务。关键文件为 task_service、worker、sync_service、relationship_audit 和 query_service;管理员 API 为
/api/v1/system/tplus。
职责与边界
task_service创建/重试任务,控制请求幂等和事务,保留原批次与异常;HTTP 不执行源库长查询。worker.run_once取得 MySQL 执行锁后恢复中断任务、领取一个任务;读取和关联核验共用锁。sync_service主键分页读取白名单实体,每页保存原始快照,相同源 ID 和行哈希去重。relationship_audit执行db/queries/tplus/audit/queries.sql,只返回系统字典和数量;按收款方向与单据类型核对关联。query_service分页元数据,按需加载白名单报告;不返回原始 payload、驱动异常或源配置。
主要入口
管理员 API 提供概况、批次/异常分页、详情、创建与失败重试。CLI 为 python -m app.cli tplus-worker --once/--watch;原 tplus-stage --entity personnel 可继续直接读取。
连接配置、启动命令和异常处理参见项目 docs/T+本地恢复与同步开发手册.md。后端与 worker 必须指向同一 MySQL 业务库和 T+ 账套,查询文件随部署交付。
应用与兼容性脚本共用 Settings.t_plus_database_url 和连接文件校验;分号、花括号由 SQLAlchemy ODBC 方言转义。默认启用加密,失败不自动降级;既有私有配置需要按运行手册核对。管理页面不返回原始数据,但暂存 JSON 的生产敏感字段保护仍待 S1 决策。
验收限制
当前只写 MySQL 暂存与管理表,不写工资业务表、不推进时间水位。关联、成本、日期和负向事件的业务规则待客户确认。开发验收先以备份源 10.50.1600 为基准,生产完整版本后补;2022 副本结果不能替代该基准的实测。