222
schangxiang@126.com
2025-05-20 6fe443c4d26f0ec5cbcc2864a0dd9ab781c59761
PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/WorkTaskAppService.cs
@@ -145,44 +145,48 @@
        updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp);
        input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None);
        updateObj.Son_TaskCode = input.Son_TaskCode;
        updateObj.TaskCode = input.TaskCode;
        updateObj.WorkPlanStatus = input.WorkPlanStatus;
        updateObj.CallMaterialStatus = input.CallMaterialStatus;
        updateObj.DataIdentifier = input.DataIdentifier;
        updateObj.MaterialMode = input.MaterialMode;
        updateObj.Length = input.Length;
        updateObj.MarkingContent = input.MarkingContent;
        updateObj.MarkingPosition = input.MarkingPosition;
        updateObj.CuttingPosition = input.CuttingPosition;
        updateObj.Quantity = input.Quantity;
        updateObj.FlangeThickness = input.FlangeThickness;
        updateObj.FlangeInnerDiameter = input.FlangeInnerDiameter;
        updateObj.WeldingHeatInput = input.WeldingHeatInput;
        updateObj.PipeAllowableStress = input.PipeAllowableStress;
        updateObj.PipeDiameter = input.PipeDiameter;
        updateObj.PipeWallThickness = input.PipeWallThickness;
        updateObj.FactoryCode = input.FactoryCode;
        updateObj.ProductCode = input.ProductCode;
        updateObj.WorkstationCode = input.WorkstationCode;
        updateObj.EquipmentCode = input.EquipmentCode;
        updateObj.ProdLineCode = input.ProdLineCode;
        updateObj.ShipNumber = input.ShipNumber;
        updateObj.ProjectNumber = input.ProjectNumber;
        updateObj.ProcessName = input.ProcessName;
        updateObj.PipeFittingCode = input.PipeFittingCode;
        updateObj.PreSerialNumber = input.PreSerialNumber;
        updateObj.PipeSpecCode = input.PipeSpecCode;
        updateObj.PipeSectionName = input.PipeSectionName;
        updateObj.OuterDiameter = input.OuterDiameter;
        updateObj.Thickness = input.Thickness;
        updateObj.Material = input.Material;
        updateObj.ProcessRouteNumber = input.ProcessRouteNumber;
        updateObj.PlannedStartTime = input.PlannedStartTime;
        updateObj.PlannedEndTime = input.PlannedEndTime;
        updateObj.TeamInfo = input.TeamInfo;
        updateObj.Timestamp = input.Timestamp;
        updateObj.Remark = input.Remark;
        // 批量赋值所有可映射字段(通过匿名对象)
        updateObj = ObjectMapper.Map(input, updateObj); // 等效于手动赋值所有匹配字段
        //updateObj.Id = id;
        //updateObj.Son_TaskCode = input.Son_TaskCode;
        //updateObj.TaskCode = input.TaskCode;
        //updateObj.WorkPlanStatus = input.WorkPlanStatus;
        //updateObj.CallMaterialStatus = input.CallMaterialStatus;
        //updateObj.DataIdentifier = input.DataIdentifier;
        //updateObj.MaterialMode = input.MaterialMode;
        //updateObj.Length = input.Length;
        //updateObj.MarkingContent = input.MarkingContent;
        //updateObj.MarkingPosition = input.MarkingPosition;
        //updateObj.CuttingPosition = input.CuttingPosition;
        //updateObj.Quantity = input.Quantity;
        //updateObj.FlangeThickness = input.FlangeThickness;
        //updateObj.FlangeInnerDiameter = input.FlangeInnerDiameter;
        //updateObj.WeldingHeatInput = input.WeldingHeatInput;
        //updateObj.PipeAllowableStress = input.PipeAllowableStress;
        //updateObj.PipeDiameter = input.PipeDiameter;
        //updateObj.PipeWallThickness = input.PipeWallThickness;
        //updateObj.FactoryCode = input.FactoryCode;
        //updateObj.ProductCode = input.ProductCode;
        //updateObj.WorkstationCode = input.WorkstationCode;
        //updateObj.EquipmentCode = input.EquipmentCode;
        //updateObj.ProdLineCode = input.ProdLineCode;
        //updateObj.ShipNumber = input.ShipNumber;
        //updateObj.ProjectNumber = input.ProjectNumber;
        //updateObj.ProcessName = input.ProcessName;
        //updateObj.PipeFittingCode = input.PipeFittingCode;
        //updateObj.PreSerialNumber = input.PreSerialNumber;
        //updateObj.PipeSpecCode = input.PipeSpecCode;
        //updateObj.PipeSectionName = input.PipeSectionName;
        //updateObj.OuterDiameter = input.OuterDiameter;
        //updateObj.Thickness = input.Thickness;
        //updateObj.Material = input.Material;
        //updateObj.ProcessRouteNumber = input.ProcessRouteNumber;
        //updateObj.PlannedStartTime = input.PlannedStartTime;
        //updateObj.PlannedEndTime = input.PlannedEndTime;
        //updateObj.TeamInfo = input.TeamInfo;
        //updateObj.Timestamp = input.Timestamp;
        //updateObj.Remark = input.Remark;
        updateObj.LastModifierName = input.LastModifierName;//修改人 
@@ -326,7 +330,7 @@
        Check.NotNull(input, nameof(input));
        var workTaskCreateDtos = new List<(int RowIndex, WorkTaskCreateDto Item)>();
        var workTaskUpdateDtos = new List<(int RowIndex, Guid Id, WorkTaskUpdateDto Item)>();
        var workTaskUpdateDtos = new List<(int RowIndex, Guid Id, WorkTask Item)>();
        var importItems = input.WorkTasks;
        if (importItems != null && importItems.Any())
@@ -360,95 +364,99 @@
                var oldWorkTask = await _workTaskRepository.FindByNameAsync(impItem.Son_TaskCode);
                if (oldWorkTask != null)
                {
                    var workTaskUpdateDto = new WorkTaskUpdateDto
                    {
                        Son_TaskCode = impItem.Son_TaskCode,
                        TaskCode = impItem.TaskCode,
                        WorkPlanStatus = impItem.WorkPlanStatus,
                        CallMaterialStatus = impItem.CallMaterialStatus,
                        DataIdentifier = impItem.DataIdentifier,
                        MaterialMode = impItem.MaterialMode,
                        Length = impItem.Length,
                        MarkingContent = impItem.MarkingContent,
                        MarkingPosition = impItem.MarkingPosition,
                        CuttingPosition = impItem.CuttingPosition,
                        Quantity = impItem.Quantity,
                        FlangeThickness = impItem.FlangeThickness,
                        FlangeInnerDiameter = impItem.FlangeInnerDiameter,
                        WeldingHeatInput = impItem.WeldingHeatInput,
                        PipeAllowableStress = impItem.PipeAllowableStress,
                        PipeDiameter = impItem.PipeDiameter,
                        PipeWallThickness = impItem.PipeWallThickness,
                        FactoryCode = impItem.FactoryCode,
                        ProductCode = impItem.ProductCode,
                        WorkstationCode = impItem.WorkstationCode,
                        EquipmentCode = impItem.EquipmentCode,
                        ProdLineCode = impItem.ProdLineCode,
                        ShipNumber = impItem.ShipNumber,
                        ProjectNumber = impItem.ProjectNumber,
                        ProcessName = impItem.ProcessName,
                        PipeFittingCode = impItem.PipeFittingCode,
                        PreSerialNumber = impItem.PreSerialNumber,
                        PipeSpecCode = impItem.PipeSpecCode,
                        PipeSectionName = impItem.PipeSectionName,
                        OuterDiameter = impItem.OuterDiameter,
                        Thickness = impItem.Thickness,
                        Material = impItem.Material,
                        ProcessRouteNumber = impItem.ProcessRouteNumber,
                        PlannedStartTime = impItem.PlannedStartTime,
                        PlannedEndTime = impItem.PlannedEndTime,
                        TeamInfo = impItem.TeamInfo,
                        Timestamp = impItem.Timestamp,
                        Remark = impItem.Remark,
                    //var workTaskUpdateDto = new WorkTaskUpdateDto { };
                    oldWorkTask = ObjectMapper.Map(impItem, oldWorkTask); // 等效于手动赋值所有匹配字段
                    //var workTaskUpdateDto = new WorkTaskUpdateDto
                    //{
                    //    Son_TaskCode = impItem.Son_TaskCode,
                    //    TaskCode = impItem.TaskCode,
                    //    WorkPlanStatus = impItem.WorkPlanStatus,
                    //    CallMaterialStatus = impItem.CallMaterialStatus,
                    //    DataIdentifier = impItem.DataIdentifier,
                    //    MaterialMode = impItem.MaterialMode,
                    //    Length = impItem.Length,
                    //    MarkingContent = impItem.MarkingContent,
                    //    MarkingPosition = impItem.MarkingPosition,
                    //    CuttingPosition = impItem.CuttingPosition,
                    //    Quantity = impItem.Quantity,
                    //    FlangeThickness = impItem.FlangeThickness,
                    //    FlangeInnerDiameter = impItem.FlangeInnerDiameter,
                    //    WeldingHeatInput = impItem.WeldingHeatInput,
                    //    PipeAllowableStress = impItem.PipeAllowableStress,
                    //    PipeDiameter = impItem.PipeDiameter,
                    //    PipeWallThickness = impItem.PipeWallThickness,
                    //    FactoryCode = impItem.FactoryCode,
                    //    ProductCode = impItem.ProductCode,
                    //    WorkstationCode = impItem.WorkstationCode,
                    //    EquipmentCode = impItem.EquipmentCode,
                    //    ProdLineCode = impItem.ProdLineCode,
                    //    ShipNumber = impItem.ShipNumber,
                    //    ProjectNumber = impItem.ProjectNumber,
                    //    ProcessName = impItem.ProcessName,
                    //    PipeFittingCode = impItem.PipeFittingCode,
                    //    PreSerialNumber = impItem.PreSerialNumber,
                    //    PipeSpecCode = impItem.PipeSpecCode,
                    //    PipeSectionName = impItem.PipeSectionName,
                    //    OuterDiameter = impItem.OuterDiameter,
                    //    Thickness = impItem.Thickness,
                    //    Material = impItem.Material,
                    //    ProcessRouteNumber = impItem.ProcessRouteNumber,
                    //    PlannedStartTime = impItem.PlannedStartTime,
                    //    PlannedEndTime = impItem.PlannedEndTime,
                    //    TeamInfo = impItem.TeamInfo,
                    //    Timestamp = impItem.Timestamp,
                    //    Remark = impItem.Remark,
                    };
                    //};
                    workTaskUpdateDtos.Add((impItem.RowIndex, oldWorkTask.Id, workTaskUpdateDto));
                    workTaskUpdateDtos.Add((impItem.RowIndex, oldWorkTask.Id, oldWorkTask));
                }
                else
                {
                    var workTaskCreateDto = new WorkTaskCreateDto
                    {
                        Son_TaskCode = impItem.Son_TaskCode,
                        TaskCode = impItem.TaskCode,
                        WorkPlanStatus = impItem.WorkPlanStatus,
                        CallMaterialStatus = impItem.CallMaterialStatus,
                        DataIdentifier = impItem.DataIdentifier,
                        MaterialMode = impItem.MaterialMode,
                        Length = impItem.Length,
                        MarkingContent = impItem.MarkingContent,
                        MarkingPosition = impItem.MarkingPosition,
                        CuttingPosition = impItem.CuttingPosition,
                        Quantity = impItem.Quantity,
                        FlangeThickness = impItem.FlangeThickness,
                        FlangeInnerDiameter = impItem.FlangeInnerDiameter,
                        WeldingHeatInput = impItem.WeldingHeatInput,
                        PipeAllowableStress = impItem.PipeAllowableStress,
                        PipeDiameter = impItem.PipeDiameter,
                        PipeWallThickness = impItem.PipeWallThickness,
                        FactoryCode = impItem.FactoryCode,
                        ProductCode = impItem.ProductCode,
                        WorkstationCode = impItem.WorkstationCode,
                        EquipmentCode = impItem.EquipmentCode,
                        ProdLineCode = impItem.ProdLineCode,
                        ShipNumber = impItem.ShipNumber,
                        ProjectNumber = impItem.ProjectNumber,
                        ProcessName = impItem.ProcessName,
                        PipeFittingCode = impItem.PipeFittingCode,
                        PreSerialNumber = impItem.PreSerialNumber,
                        PipeSpecCode = impItem.PipeSpecCode,
                        PipeSectionName = impItem.PipeSectionName,
                        OuterDiameter = impItem.OuterDiameter,
                        Thickness = impItem.Thickness,
                        Material = impItem.Material,
                        ProcessRouteNumber = impItem.ProcessRouteNumber,
                        PlannedStartTime = impItem.PlannedStartTime,
                        PlannedEndTime = impItem.PlannedEndTime,
                        TeamInfo = impItem.TeamInfo,
                        Timestamp = impItem.Timestamp,
                        Remark = impItem.Remark,
                    var workTaskCreateDto = new WorkTaskCreateDto { };
                    workTaskCreateDto = ObjectMapper.Map(impItem, workTaskCreateDto); // 等效于手动赋值所有匹配字段
                    //var workTaskCreateDto = new WorkTaskCreateDto
                    //{
                    //    Son_TaskCode = impItem.Son_TaskCode,
                    //    TaskCode = impItem.TaskCode,
                    //    WorkPlanStatus = impItem.WorkPlanStatus,
                    //    CallMaterialStatus = impItem.CallMaterialStatus,
                    //    DataIdentifier = impItem.DataIdentifier,
                    //    MaterialMode = impItem.MaterialMode,
                    //    Length = impItem.Length,
                    //    MarkingContent = impItem.MarkingContent,
                    //    MarkingPosition = impItem.MarkingPosition,
                    //    CuttingPosition = impItem.CuttingPosition,
                    //    Quantity = impItem.Quantity,
                    //    FlangeThickness = impItem.FlangeThickness,
                    //    FlangeInnerDiameter = impItem.FlangeInnerDiameter,
                    //    WeldingHeatInput = impItem.WeldingHeatInput,
                    //    PipeAllowableStress = impItem.PipeAllowableStress,
                    //    PipeDiameter = impItem.PipeDiameter,
                    //    PipeWallThickness = impItem.PipeWallThickness,
                    //    FactoryCode = impItem.FactoryCode,
                    //    ProductCode = impItem.ProductCode,
                    //    WorkstationCode = impItem.WorkstationCode,
                    //    EquipmentCode = impItem.EquipmentCode,
                    //    ProdLineCode = impItem.ProdLineCode,
                    //    ShipNumber = impItem.ShipNumber,
                    //    ProjectNumber = impItem.ProjectNumber,
                    //    ProcessName = impItem.ProcessName,
                    //    PipeFittingCode = impItem.PipeFittingCode,
                    //    PreSerialNumber = impItem.PreSerialNumber,
                    //    PipeSpecCode = impItem.PipeSpecCode,
                    //    PipeSectionName = impItem.PipeSectionName,
                    //    OuterDiameter = impItem.OuterDiameter,
                    //    Thickness = impItem.Thickness,
                    //    Material = impItem.Material,
                    //    ProcessRouteNumber = impItem.ProcessRouteNumber,
                    //    PlannedStartTime = impItem.PlannedStartTime,
                    //    PlannedEndTime = impItem.PlannedEndTime,
                    //    TeamInfo = impItem.TeamInfo,
                    //    Timestamp = impItem.Timestamp,
                    //    Remark = impItem.Remark,
                    };
                    //};
                    workTaskCreateDtos.Add((impItem.RowIndex, workTaskCreateDto));
                }
@@ -471,16 +479,16 @@
        }
        // 更新 
        foreach (var workTaskDto in workTaskUpdateDtos)
        foreach (var oldWorkObj in workTaskUpdateDtos)
        {
            try
            {
                workTaskDto.Item.LastModifierName = myCurrentUser.UserAccount;//修改人
                await UpdateAsync(workTaskDto.Id, workTaskDto.Item);
                oldWorkObj.Item.LastModifierName = myCurrentUser.UserAccount;//修改人
                await _workTaskRepository.UpdateAsync(oldWorkObj.Item);
            }
            catch (Exception e)
            {
                var errorMsg = $"导入失败!配置,第{workTaskDto.RowIndex}行:{e.Message},终止导入";
                var errorMsg = $"导入失败!配置,第{oldWorkObj.RowIndex}行:{e.Message},终止导入";
                throw new UserFriendlyException(errorMsg);
            }
        }