111
This commit is contained in:
+18
-2
@@ -63,13 +63,29 @@ public class OnboardingContractSnapshotService : IOnboardingContractSnapshotServ
|
||||
};
|
||||
}).ToList();
|
||||
|
||||
// 仅当参与合同渲染的变量编码或变量值发生变化时,才作废已生成文件。
|
||||
// 重复保存完全相同的员工资料不应导致员工刚查看的合同突然失效。
|
||||
var snapshotChanged = oldRows.Count != rows.Count
|
||||
|| rows.Any(row =>
|
||||
{
|
||||
var old = oldRows.FirstOrDefault(item =>
|
||||
item.VariableCode == row.VariableCode);
|
||||
return old == null
|
||||
|| !string.Equals(
|
||||
old.VariableValue,
|
||||
row.VariableValue,
|
||||
StringComparison.Ordinal);
|
||||
});
|
||||
|
||||
await _db.Deleteable<ObTaskContractVariable>()
|
||||
.Where(item => item.TaskContractId == contract.Id)
|
||||
.ExecuteCommandAsync();
|
||||
if (rows.Count > 0)
|
||||
await _db.Insertable(rows).ExecuteCommandAsync();
|
||||
|
||||
if (invalidateGeneratedPreview && task.TaskStatus is OnboardingTaskStatus.PendingFill or OnboardingTaskStatus.Rejected)
|
||||
if (invalidateGeneratedPreview
|
||||
&& snapshotChanged
|
||||
&& task.TaskStatus is OnboardingTaskStatus.PendingFill or OnboardingTaskStatus.Rejected)
|
||||
{
|
||||
contract.GeneratedDocxFileId = null;
|
||||
contract.GeneratedPdfFileId = null;
|
||||
@@ -204,4 +220,4 @@ public class OnboardingContractSnapshotService : IOnboardingContractSnapshotServ
|
||||
_ => sourceField
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user