This commit is contained in:
Marsway 2026-03-25 10:23:12 +08:00
parent bf458ed2c1
commit ae6d323ff8
1 changed files with 22 additions and 1 deletions

View File

@ -611,18 +611,39 @@ class SyncEhrToOaFormJob(BaseJob):
raise RuntimeError(f"OA batch-update failed code={code} message={rj.get('message')!r}")
data = rj.get("data") or {}
message = str(rj.get("message") or "")
success_count += int(data.get("successCount", 0) or 0)
failed_count += int(data.get("failedCount", 0) or 0)
fd = data.get("failedData") or {}
if isinstance(fd, dict):
for k, v in fd.items():
failed_data[str(k)] = str(v)
else:
fd = {}
# 打印失败原因样本,避免只有计数没有原因。
if fd:
sample_items = list(fd.items())[:20]
logger.warning(
"OA batch-update failedData sample chunk=%s size=%s message=%s sample=%s",
i // batch_size + 1,
len(chunk),
message,
sample_items,
)
logger.info(
"OA batch-update chunk done chunk_size=%s success=%s failed=%s",
"OA batch-update chunk done chunk_size=%s success=%s failed=%s message=%s",
len(chunk),
int(data.get("successCount", 0) or 0),
int(data.get("failedCount", 0) or 0),
message,
)
# 若整批 100% 失败,立即抛错终止并返回样本,避免任务表面继续执行。
if int(data.get("successCount", 0) or 0) == 0 and int(data.get("failedCount", 0) or 0) == len(chunk):
raise RuntimeError(
"OA batch-update chunk all failed; "
f"message={message!r}; failed_sample={list(fd.items())[:20] if isinstance(fd, dict) else fd!r}"
)
return {