修复相关bug

This commit is contained in:
fuenmao
2026-09-14 15:59:37 +08:00
parent 20409635d6
commit f004aec10f
9 changed files with 230 additions and 29 deletions
@@ -161,6 +161,11 @@ public class OnboardingTaskService : IOnboardingTaskService
CreateTime = DateTime.Now
}).ExecuteCommandAsync();
var employeeFieldRequirements =
await OnboardingEmployeeFieldRequirementSnapshot.BuildFromCurrentDefinitions(_db, taskId);
if (employeeFieldRequirements.Count > 0)
await _db.Insertable(employeeFieldRequirements).ExecuteCommandAsync();
var contracts = contractConfigs.Select(config =>
{
var template = contractTemplates.First(item => item.Id == config.ContractTemplateId);
@@ -295,6 +300,10 @@ public class OnboardingTaskService : IOnboardingTaskService
.Where(item => item.TaskId == sourceTask.Id)
.OrderBy(item => item.SortCode)
.ToListAsync();
var sourceEmployeeFieldRequirements =
(await OnboardingEmployeeFieldRequirementSnapshot.GetForTask(_db, sourceTask.Id))
.Where(OnboardingEmployeeFieldRequirementSnapshot.IsEmployeeField)
.ToList();
var sourceContractIds = sourceContracts.Select(item => item.Id).ToList();
var sourceManualVariables = await _db.Queryable<ObTaskContractVariable>()
.Where(item => sourceContractIds.Contains(item.TaskContractId)
@@ -334,6 +343,7 @@ public class OnboardingTaskService : IOnboardingTaskService
sourceTask,
sourceContracts,
sourceMaterialRequirements,
sourceEmployeeFieldRequirements,
initialContractVariables,
expiryHours,
item.Remark.Trim());
@@ -361,6 +371,7 @@ public class OnboardingTaskService : IOnboardingTaskService
ObOnboardingTask sourceTask,
List<ObTaskContract> sourceContracts,
List<ObTaskMaterialRequirement> sourceMaterialRequirements,
List<ObTaskFormRequirement> sourceEmployeeFieldRequirements,
List<OnboardingInitialContractVariableInput> initialContractVariables,
int expiryHours,
string remark)
@@ -405,6 +416,24 @@ public class OnboardingTaskService : IOnboardingTaskService
CreateTime = now
}).ExecuteCommandAsync();
if (sourceEmployeeFieldRequirements.Count > 0)
{
var copiedEmployeeFieldRequirements = sourceEmployeeFieldRequirements.Select(source =>
new ObTaskFormRequirement
{
Id = global::SimpleAdmin.Core.Utils.CommonUtils.GetSingleId(),
TaskId = taskId,
FieldId = source.FieldId,
FieldCode = source.FieldCode,
FieldName = source.FieldName,
DataType = source.DataType,
OptionsJson = source.OptionsJson,
Required = source.Required,
SortCode = source.SortCode
}).ToList();
await _db.Insertable(copiedEmployeeFieldRequirements).ExecuteCommandAsync();
}
var copiedContracts = sourceContracts.Select(source => new ObTaskContract
{
Id = global::SimpleAdmin.Core.Utils.CommonUtils.GetSingleId(),