This commit is contained in:
fuenmao
2026-08-27 16:27:08 +08:00
parent ae8167a566
commit 80940c60a5
22 changed files with 218 additions and 8 deletions
@@ -42,6 +42,11 @@ public class ObTaskContractVariable : BaseEntity
/// </summary>
public string DataType { get; set; }
/// <summary>
/// 变量在任务合同中的展示顺序,创建任务时从模板变量复制并固定。
/// </summary>
public int SortCode { get; set; } = 100;
/// <summary>
/// 合同生成时使用的最终变量值。
/// </summary>
@@ -53,6 +53,7 @@ public class OnboardingContractSnapshotService : IOnboardingContractSnapshotServ
VariableName = definition.VariableName,
VariableType = definition.VariableType,
DataType = definition.DataType,
SortCode = definition.SortCode ?? 100,
VariableValue = preserveManual
? old.VariableValue
: ResolveValue(definition, employeeInfo, dynamicValueMap, company, task),
@@ -411,9 +411,11 @@ public class OnboardingContractTemplateService : DbRepository<ObContractTemplate
EmployeeField = variableType is ContractVariableType.Employee or ContractVariableType.Company
? sourceField
: null,
DefaultValue = def?.DefaultValue,
Required = def?.Required ?? true,
HrEditable = variableType == ContractVariableType.Contract,
SortCode = (index + 1) * 10,
// 合同版本首次识别时继承全局变量字典排序;未登记排序时才使用识别顺序兜底。
SortCode = def?.SortCode ?? (index + 1) * 10,
Remark = def?.Remark
};
}
@@ -103,6 +103,11 @@ public class OnboardingTaskContractVariableItemOutput
/// </summary>
public string DataType { get; set; }
/// <summary>
/// 任务创建时保存的变量展示顺序。
/// </summary>
public int SortCode { get; set; }
/// <summary>
/// 任务合同变量最终值。
/// </summary>
@@ -43,7 +43,8 @@ public class OnboardingTaskContractVariableService : IOnboardingTaskContractVari
Variables = variables
.Where(variable => variable.TaskContractId == contract.Id)
.OrderBy(variable => variable.VariableCode)
.OrderBy(variable => variable.SortCode)
.ThenBy(variable => variable.VariableCode)
.Select(variable =>
{
var definition = definitions.FirstOrDefault(x =>
@@ -59,6 +60,7 @@ public class OnboardingTaskContractVariableService : IOnboardingTaskContractVari
VariableName = variable.VariableName,
VariableType = variable.VariableType,
DataType = variable.DataType,
SortCode = variable.SortCode,
VariableValue = variable.VariableValue,
Required = definition?.Required == true,
HrEditable = hrEditable,