fix(core): 消除乐观锁 version.unwrap() 潜在 panic

20 处 ActiveValue::unwrap() + 1 乐观锁递增改为 take().unwrap_or(0) + 1,
避免数据库记录缺少 version 字段时 panic。覆盖 erp-auth/erp-config/
erp-workflow/erp-health/erp-ai/erp-server 7 个 crate。
DTO 层 Option<i32> 字段保持原有 unwrap_or(0) 不变。
This commit is contained in:
iven
2026-05-17 13:05:40 +08:00
parent 7b2c03309c
commit c631d364b3
20 changed files with 30 additions and 30 deletions

View File

@@ -89,7 +89,7 @@ impl FlowExecutor {
// 消费当前 token
let mut active: token::ActiveModel = current_token.into();
active.version = Set(active.version.unwrap() + 1);
active.version = Set(active.version.take().unwrap_or(0) + 1);
active.status = Set("consumed".to_string());
active.consumed_at = Set(Some(Utc::now()));
active
@@ -600,7 +600,7 @@ impl FlowExecutor {
.ok_or_else(|| WorkflowError::NotFound(format!("流程实例不存在: {instance_id}")))?;
let mut active: process_instance::ActiveModel = instance.into();
active.version = Set(active.version.unwrap() + 1);
active.version = Set(active.version.take().unwrap_or(0) + 1);
active.status = Set("completed".to_string());
active.completed_at = Set(Some(Utc::now()));
active.updated_at = Set(Utc::now());