From a3a2b238a2626ef8744e7a135f9ca2e2fbb5184c Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周三, 21 5月 2025 10:17:36 +0800
Subject: [PATCH] 优化

---
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/WorkPlanAppService.cs |  504 +++++++++++++++++++++++++++++--------------------------
 1 files changed, 264 insertions(+), 240 deletions(-)

diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/WorkPlanAppService.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/WorkPlanAppService.cs
index 686a0d9..6ef527d 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/WorkPlanAppService.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/WorkPlanAppService.cs
@@ -10,6 +10,9 @@
 using Volo.Abp.Data;
 using Volo.Abp.ObjectExtending;
 using Volo.Abp.ObjectMapping;
+using Volo.Abp.Users;
+using CmsQueryExtensions.Entitys;
+using System.Collections.Generic;
 
 namespace CMS.Plugin.PipeLineLems.Application.Implements;
 
@@ -18,15 +21,18 @@
 /// </summary> 
 public class WorkPlanAppService : CMSPluginAppService, IWorkPlanAppService
 {
-    private readonly IWorkPlanRepository workPlanRepository;
-
+    private readonly IWorkPlanRepository _workPlanRepository;
+    private readonly SharedService _sharedService;
+    private readonly IServiceProvider _serviceProvider;
     /// <summary> 
     /// Initializes a new instance of the <see cref="WorkPlanAppService"/> class. 
     /// </summary> 
     /// <param name="WorkPlanRepository">The task job repository.</param> 
-    public WorkPlanAppService(IWorkPlanRepository _WorkPlanRepository)
+    public WorkPlanAppService(IWorkPlanRepository workPlanRepository, SharedService sharedService, IServiceProvider serviceProvider)
     {
-        workPlanRepository = _WorkPlanRepository;
+        _workPlanRepository = workPlanRepository;
+        _sharedService = sharedService;
+        _serviceProvider = serviceProvider;
     }
 
     /// <summary> 
@@ -36,8 +42,9 @@
     /// <returns></returns> 
     public virtual async Task<WorkPlanDto> GetAsync(Guid id)
     {
-        return ObjectMapper.Map<WorkPlan, WorkPlanDto>(await workPlanRepository.GetAsync(id));
+        return ObjectMapper.Map<WorkPlan, WorkPlanDto>(await _workPlanRepository.GetAsync(id));
     }
+
 
     /// <summary> 
     /// 鍒嗛〉鑾峰彇浣滀笟璁″垝琛� 
@@ -60,8 +67,8 @@
 
         #endregion
 
-        var count = await workPlanRepository.GetCountAsync(whereConditions);
-        var list = await workPlanRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount);
+        var count = await _workPlanRepository.GetCountAsync(whereConditions);
+        var list = await _workPlanRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount);
 
         return new PagedResultDto<WorkPlanDto>(count, ObjectMapper.Map<List<WorkPlan>, List<WorkPlanDto>>(list));
     }
@@ -99,20 +106,21 @@
     {
         await CheckCreateOrUpdateDtoAsync(input);
 
-        var exist = await workPlanRepository.NameExistAsync(input.TaskCode);
+        var exist = await _workPlanRepository.NameExistAsync(input.TaskCode);
         if (exist)
         {
             throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.TaskCode]);
         }
 
-        var maxSort = await workPlanRepository.GetMaxSortAsync();
+        var maxSort = await _workPlanRepository.GetMaxSortAsync();
         var sort = input.Sort ?? maxSort;
 
         var insertObj = ObjectMapper.Map<WorkPlanCreateDto, WorkPlan>(input);
         insertObj.Sort = sort;
+        insertObj.CreatorName = "SuperAdmin";
         input.MapExtraPropertiesTo(insertObj, MappingPropertyDefinitionChecks.None);
 
-        await workPlanRepository.InsertAsync(insertObj);
+        await _workPlanRepository.InsertAsync(insertObj);
 
         //if (input.Sort.HasValue && insertObj.Sort != maxSort) 
         //{ 
@@ -133,8 +141,8 @@
     {
         await CheckCreateOrUpdateDtoAsync(input);
 
-        var updateObj = await workPlanRepository.GetAsync(id);
-        var exist = await workPlanRepository.NameExistAsync(input.TaskCode, updateObj.Id);
+        var updateObj = await _workPlanRepository.GetAsync(id);
+        var exist = await _workPlanRepository.NameExistAsync(input.TaskCode, updateObj.Id);
         if (exist)
         {
             throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.TaskCode]);
@@ -143,58 +151,12 @@
         updateObj.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp);
         input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None);
 
-        updateObj.TaskCode = input.TaskCode;
-        updateObj.OrgMaterialCode = input.OrgMaterialCode;
-        updateObj.FactoryCode = input.FactoryCode;
-        updateObj.ProductCode = input.ProductCode;
-        updateObj.WorkstationCode = input.WorkstationCode;
-        updateObj.EquipmentCode = input.EquipmentCode;
-        updateObj.WorkpieceName = input.WorkpieceName;
-        updateObj.ProcessName = input.ProcessName;
-        updateObj.PipeFittingCode = input.PipeFittingCode;
-        updateObj.PreSerialNumber = input.PreSerialNumber;
-        updateObj.DataIdentifier = input.DataIdentifier;
-        updateObj.PipeSpecCode = input.PipeSpecCode;
-        updateObj.PipeSectionName = input.PipeSectionName;
-        updateObj.OuterDiameter = input.OuterDiameter;
-        updateObj.Bevel = input.Bevel;
-        updateObj.Material = input.Material;
-        updateObj.Length = input.Length;
-        updateObj.DrillingPosition = input.DrillingPosition;
-        updateObj.Intersecting = input.Intersecting;
-        updateObj.InterfaceRequirement = input.InterfaceRequirement;
-        updateObj.HasMainSignature = input.HasMainSignature;
-        updateObj.Quantity = input.Quantity;
-        updateObj.MarkingContent = input.MarkingContent;
-        updateObj.CuttingFile = input.CuttingFile;
-        updateObj.BranchOuterDiameter = input.BranchOuterDiameter;
-        updateObj.BranchWallThickness = input.BranchWallThickness;
-        updateObj.BranchMaterial = input.BranchMaterial;
-        updateObj.BranchPortRadius = input.BranchPortRadius;
-        updateObj.BranchPortAngle = input.BranchPortAngle;
-        updateObj.BranchPortRequirement = input.BranchPortRequirement;
-        updateObj.IntersectingLineType = input.IntersectingLineType;
-        updateObj.IntersectingLineCategory = input.IntersectingLineCategory;
-        updateObj.FinishedProductScale = input.FinishedProductScale;
-        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.VRData = input.VRData;
-        updateObj.ProcessRouteNumber = input.ProcessRouteNumber;
-        updateObj.PlannedStartTime = input.PlannedStartTime;
-        updateObj.PlannedEndTime = input.PlannedEndTime;
-        updateObj.TimeInfo = input.TimeInfo;
-        updateObj.RedundantField1 = input.RedundantField1;
-        updateObj.RedundantField2 = input.RedundantField2;
-        updateObj.RedundantField3 = input.RedundantField3;
-        updateObj.Remark = input.Remark;
-        updateObj.IsDisabled = input.IsDisabled;
+        // 鎵归噺璧嬪�兼墍鏈夊彲鏄犲皠瀛楁锛堥�氳繃鍖垮悕瀵硅薄锛� 
+        updateObj = ObjectMapper.Map(input, updateObj); // 绛夋晥浜庢墜鍔ㄨ祴鍊兼墍鏈夊尮閰嶅瓧娈� 
 
+        updateObj.LastModifierName = input.LastModifierName;//淇敼浜� 
 
-        await workPlanRepository.UpdateAsync(updateObj);
+        await _workPlanRepository.UpdateAsync(updateObj);
 
         return ObjectMapper.Map<WorkPlan, WorkPlanDto>(updateObj);
     }
@@ -246,7 +208,7 @@
     /// <returns></returns> 
     public virtual Task DeleteAsync(Guid id)
     {
-        return workPlanRepository.DeleteAsync(id);
+        return _workPlanRepository.DeleteAsync(id);
     }
 
     /// <summary> 
@@ -270,7 +232,7 @@
     /// <returns></returns> 
     public virtual async Task AdjustSortAsync(Guid id, int sort)
     {
-        var list = await workPlanRepository.GetListAsync(null, nameof(WorkPlan.Sort));
+        var list = await _workPlanRepository.GetListAsync(null, nameof(WorkPlan.Sort));
         if (list != null && list.Any())
         {
             var initSort = 1;
@@ -297,7 +259,7 @@
             }
         }
 
-        await workPlanRepository.UpdateManyAsync(list);
+        await _workPlanRepository.UpdateManyAsync(list);
     }
 
     /// <summary> 
@@ -306,189 +268,166 @@
     /// <param name="input"></param> 
     /// <returns></returns> 
     /// <exception cref="UserFriendlyException"></exception> 
-    public async Task ImportAsync(WorkPlansImportModel input)
+    public async Task ImportAsync(WorkPlansImportModel input, MyCurrentUser myCurrentUser)
     {
-        Check.NotNull(input, nameof(input));
+        //杞崲鏁版嵁
+        var result = ObjectMapper.Map<List<WorkPlansImportModel.WorkPlanImportModel>, List<WorkPlanInput>>(input.WorkPlans);
 
-        var workPlanCreateDtos = new List<(int RowIndex, WorkPlanCreateDto Item)>();
-        var workPlanUpdateDtos = new List<(int RowIndex, Guid Id, WorkPlanUpdateDto Item)>();
-        var importItems = input.WorkPlans;
+        //await CreatebyApsAsync(result);
+        await _sharedService.CommonCreatebyApsAsync(result, _serviceProvider, this, myCurrentUser.UserId, myCurrentUser.UserAccount);
+        //        Check.NotNull(input, nameof(input)); 
 
-        if (importItems != null && importItems.Any())
-        {
-            #region 瀵煎叆鏍¢獙 
+        //        var workPlanCreateDtos = new List<(int RowIndex, WorkPlanCreateDto Item)>(); 
+        //        var workPlanUpdateDtos = new List<(int RowIndex, Guid Id, WorkPlanUpdateDto Item)>(); 
+        //        var importItems = input.WorkPlans; 
 
-            // 鍒ゆ柇鍚嶇О鏄惁閲嶅锛屽苟杈撳嚭绗嚑琛岄噸澶� 
-            var duplicateWorkPlans = importItems.GroupBy(x => x.TaskCode).Where(x => x.Count() > 1).ToList();
-            if (duplicateWorkPlans?.Any() == true)
-            {
-                var duplicateWorkPlanMsgs = duplicateWorkPlans.Select(x => $"绗� {string.Join(",", x.Select(x => x.RowIndex))} 琛岋細{x.Key}  鍚嶇О閲嶅");
-                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝 {string.Join(",", duplicateWorkPlanMsgs)}锛岀粓姝㈠鍏�";
-                throw new UserFriendlyException(errorMsg);
-            }
+        //        if (importItems != null && importItems.Any()) 
+        //        { 
+        //            #region 瀵煎叆鏍¢獙 
 
-            #endregion
+        //            // 鍒ゆ柇鍚嶇О鏄惁閲嶅锛屽苟杈撳嚭绗嚑琛岄噸澶� 
+        //            var duplicateWorkPlans = importItems.GroupBy(x => x.TaskCode).Where(x => x.Count() > 1).ToList(); 
+        //            if (duplicateWorkPlans?.Any() == true) 
+        //            { 
+        //                var duplicateWorkPlanMsgs = duplicateWorkPlans.Select(x => $"绗� {string.Join(",", x.Select(x => x.RowIndex))} 琛岋細{x.Key}  鍚嶇О閲嶅"); 
+        //                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝 {string.Join(",", duplicateWorkPlanMsgs)}锛岀粓姝㈠鍏�"; 
+        //                throw new UserFriendlyException(errorMsg); 
+        //            } 
 
-            foreach (var impItem in importItems)
-            {
-                if (impItem.TaskCode.IsNullOrWhiteSpace())
-                {
-                    continue;
-                }
+        //            #endregion 
 
-                if (impItem.TaskCode.IsNullOrWhiteSpace())
-                {
-                    var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊impItem.RowIndex}琛岋細WorkPlan鍚嶇О涓嶈兘涓虹┖";
-                    throw new UserFriendlyException(errorMsg);
-                }
+        //            foreach (var impItem in importItems) 
+        //            { 
+        //                if (impItem.TaskCode.IsNullOrWhiteSpace()) 
+        //                { 
+        //                    continue; 
+        //                } 
 
-                var oldWorkPlan = await workPlanRepository.FindByNameAsync(impItem.TaskCode);
-                if (oldWorkPlan != null)
-                {
-                    var workPlanUpdateDto = new WorkPlanUpdateDto
-                    {
-                        TaskCode = impItem.TaskCode,
-                        OrgMaterialCode = impItem.OrgMaterialCode,
-                        FactoryCode = impItem.FactoryCode,
-                        ProductCode = impItem.ProductCode,
-                        WorkstationCode = impItem.WorkstationCode,
-                        EquipmentCode = impItem.EquipmentCode,
-                        WorkpieceName = impItem.WorkpieceName,
-                        ProcessName = impItem.ProcessName,
-                        PipeFittingCode = impItem.PipeFittingCode,
-                        PreSerialNumber = impItem.PreSerialNumber,
-                        DataIdentifier = impItem.DataIdentifier,
-                        PipeSpecCode = impItem.PipeSpecCode,
-                        PipeSectionName = impItem.PipeSectionName,
-                        OuterDiameter = impItem.OuterDiameter,
-                        Bevel = impItem.Bevel,
-                        Material = impItem.Material,
-                        Length = impItem.Length,
-                        DrillingPosition = impItem.DrillingPosition,
-                        Intersecting = impItem.Intersecting,
-                        InterfaceRequirement = impItem.InterfaceRequirement,
-                        HasMainSignature = impItem.HasMainSignature,
-                        Quantity = impItem.Quantity,
-                        MarkingContent = impItem.MarkingContent,
-                        CuttingFile = impItem.CuttingFile,
-                        BranchOuterDiameter = impItem.BranchOuterDiameter,
-                        BranchWallThickness = impItem.BranchWallThickness,
-                        BranchMaterial = impItem.BranchMaterial,
-                        BranchPortRadius = impItem.BranchPortRadius,
-                        BranchPortAngle = impItem.BranchPortAngle,
-                        BranchPortRequirement = impItem.BranchPortRequirement,
-                        IntersectingLineType = impItem.IntersectingLineType,
-                        IntersectingLineCategory = impItem.IntersectingLineCategory,
-                        FinishedProductScale = impItem.FinishedProductScale,
-                        FlangeThickness = impItem.FlangeThickness,
-                        FlangeInnerDiameter = impItem.FlangeInnerDiameter,
-                        WeldingHeatInput = impItem.WeldingHeatInput,
-                        PipeAllowableStress = impItem.PipeAllowableStress,
-                        PipeDiameter = impItem.PipeDiameter,
-                        PipeWallThickness = impItem.PipeWallThickness,
-                        VRData = impItem.VRData,
-                        ProcessRouteNumber = impItem.ProcessRouteNumber,
-                        PlannedStartTime = impItem.PlannedStartTime,
-                        PlannedEndTime = impItem.PlannedEndTime,
-                        TimeInfo = impItem.TimeInfo,
-                        RedundantField1 = impItem.RedundantField1,
-                        RedundantField2 = impItem.RedundantField2,
-                        RedundantField3 = impItem.RedundantField3,
-                        Remark = impItem.Remark,
-                        IsDisabled = impItem.IsDisabled,
+        //                if (impItem.TaskCode.IsNullOrWhiteSpace()) 
+        //                { 
+        //                    var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊impItem.RowIndex}琛岋細WorkPlan鍚嶇О涓嶈兘涓虹┖"; 
+        //                    throw new UserFriendlyException(errorMsg); 
+        //                } 
 
-                    };
+        //                var oldWorkPlan = await workPlanRepository.FindByNameAsync(impItem.TaskCode); 
+        //                if (oldWorkPlan != null) 
+        //                { 
+        //                    var workPlanUpdateDto = new WorkPlanUpdateDto 
+        //                    { 
+        //                        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,
+        //WorkpieceName = impItem.WorkpieceName,
+        //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,
 
-                    workPlanUpdateDtos.Add((impItem.RowIndex, oldWorkPlan.Id, workPlanUpdateDto));
-                }
-                else
-                {
-                    var workPlanCreateDto = new WorkPlanCreateDto
-                    {
-                        TaskCode = impItem.TaskCode,
-                        OrgMaterialCode = impItem.OrgMaterialCode,
-                        FactoryCode = impItem.FactoryCode,
-                        ProductCode = impItem.ProductCode,
-                        WorkstationCode = impItem.WorkstationCode,
-                        EquipmentCode = impItem.EquipmentCode,
-                        WorkpieceName = impItem.WorkpieceName,
-                        ProcessName = impItem.ProcessName,
-                        PipeFittingCode = impItem.PipeFittingCode,
-                        PreSerialNumber = impItem.PreSerialNumber,
-                        DataIdentifier = impItem.DataIdentifier,
-                        PipeSpecCode = impItem.PipeSpecCode,
-                        PipeSectionName = impItem.PipeSectionName,
-                        OuterDiameter = impItem.OuterDiameter,
-                        Bevel = impItem.Bevel,
-                        Material = impItem.Material,
-                        Length = impItem.Length,
-                        DrillingPosition = impItem.DrillingPosition,
-                        Intersecting = impItem.Intersecting,
-                        InterfaceRequirement = impItem.InterfaceRequirement,
-                        HasMainSignature = impItem.HasMainSignature,
-                        Quantity = impItem.Quantity,
-                        MarkingContent = impItem.MarkingContent,
-                        CuttingFile = impItem.CuttingFile,
-                        BranchOuterDiameter = impItem.BranchOuterDiameter,
-                        BranchWallThickness = impItem.BranchWallThickness,
-                        BranchMaterial = impItem.BranchMaterial,
-                        BranchPortRadius = impItem.BranchPortRadius,
-                        BranchPortAngle = impItem.BranchPortAngle,
-                        BranchPortRequirement = impItem.BranchPortRequirement,
-                        IntersectingLineType = impItem.IntersectingLineType,
-                        IntersectingLineCategory = impItem.IntersectingLineCategory,
-                        FinishedProductScale = impItem.FinishedProductScale,
-                        FlangeThickness = impItem.FlangeThickness,
-                        FlangeInnerDiameter = impItem.FlangeInnerDiameter,
-                        WeldingHeatInput = impItem.WeldingHeatInput,
-                        PipeAllowableStress = impItem.PipeAllowableStress,
-                        PipeDiameter = impItem.PipeDiameter,
-                        PipeWallThickness = impItem.PipeWallThickness,
-                        VRData = impItem.VRData,
-                        ProcessRouteNumber = impItem.ProcessRouteNumber,
-                        PlannedStartTime = impItem.PlannedStartTime,
-                        PlannedEndTime = impItem.PlannedEndTime,
-                        TimeInfo = impItem.TimeInfo,
-                        RedundantField1 = impItem.RedundantField1,
-                        RedundantField2 = impItem.RedundantField2,
-                        RedundantField3 = impItem.RedundantField3,
-                        Remark = impItem.Remark,
-                        IsDisabled = impItem.IsDisabled,
+        //                    }; 
 
-                    };
+        //                    workPlanUpdateDtos.Add((impItem.RowIndex, oldWorkPlan.Id, workPlanUpdateDto)); 
+        //                } 
+        //                else 
+        //                { 
+        //                    var workPlanCreateDto = new WorkPlanCreateDto 
+        //                    { 
+        //                        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,
+        //WorkpieceName = impItem.WorkpieceName,
+        //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,
 
-                    workPlanCreateDtos.Add((impItem.RowIndex, workPlanCreateDto));
-                }
-            }
-        }
+        //                    }; 
 
-        // 鏂板 
-        foreach (var workPlanDto in workPlanCreateDtos)
-        {
-            try
-            {
-                await CreateAsync(workPlanDto.Item);
-            }
-            catch (Exception e)
-            {
-                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊workPlanDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�";
-                throw new UserFriendlyException(errorMsg);
-            }
-        }
+        //                    workPlanCreateDtos.Add((impItem.RowIndex, workPlanCreateDto)); 
+        //                } 
+        //            } 
+        //        } 
 
-        // 鏇存柊 
-        foreach (var workPlanDto in workPlanUpdateDtos)
-        {
-            try
-            {
-                await UpdateAsync(workPlanDto.Id, workPlanDto.Item);
-            }
-            catch (Exception e)
-            {
-                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊workPlanDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�";
-                throw new UserFriendlyException(errorMsg);
-            }
-        }
+        //        // 鏂板 
+        //        foreach (var workPlanDto in workPlanCreateDtos) 
+        //        { 
+        //            try 
+        //            { 
+        //                await CreateAsync(workPlanDto.Item); 
+        //            } 
+        //            catch (Exception e) 
+        //            { 
+        //                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊workPlanDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�"; 
+        //                throw new UserFriendlyException(errorMsg); 
+        //            } 
+        //        } 
+
+        //        // 鏇存柊 
+        //        foreach (var workPlanDto in workPlanUpdateDtos) 
+        //        { 
+        //            try 
+        //            { 
+        //                await UpdateAsync(workPlanDto.Id, workPlanDto.Item); 
+        //            } 
+        //            catch (Exception e) 
+        //            { 
+        //                var errorMsg = $"瀵煎叆澶辫触锛侀厤缃紝绗瑊workPlanDto.RowIndex}琛岋細{e.Message}锛岀粓姝㈠鍏�"; 
+        //                throw new UserFriendlyException(errorMsg); 
+        //            } 
+        //        } 
     }
 
     /// <summary> 
@@ -513,7 +452,7 @@
         #endregion
 
 
-        var list = await workPlanRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true);
+        var list = await _workPlanRepository.GetListAsync(whereConditions, input.Sorting, input.MaxResultCount, input.SkipCount, includeDetails: true);
         var result = ObjectMapper.Map<List<WorkPlan>, List<WorkPlanDto>>(list);
 
         var sheets = new Dictionary<string, object>
@@ -521,7 +460,7 @@
             ["閰嶇疆"] = ExportHelper.ConvertListToExportData(result),
         };
 
-        var fileName = result.Count > 1 ? "浣滀笟璁″垝琛ㄥ垪琛�" : result.Count == 1 ? result[0]?.TaskCode : "WorkPlan妯$増";
+        var fileName = "浣滀笟璁″垝";
         return (sheets, fileName);
     }
 
@@ -533,11 +472,96 @@
     protected Task CheckCreateOrUpdateDtoAsync(WorkPlanCreateOrUpdateDtoBase input)
     {
         Check.NotNull(input, nameof(input));
-        Check.NotNullOrWhiteSpace(input.TaskCode, "浠诲姟缂栫爜", 64);
-        Check.NotNullOrWhiteSpace(input.OrgMaterialCode, "鍘熸枡缂栧彿", 64);
-        Check.NotNull(input.HasMainSignature, "鏄惁鏈変富绛�");
-        Check.NotNull(input.Quantity, "鍖呮嫭鏁伴噺");
+        Check.NotNullOrWhiteSpace(input.TaskCode, "浠诲姟缂栫爜", 256);
+        Check.NotNull(input.WorkPlanStatus, "璁″垝鐘舵��");
+        Check.NotNull(input.CallMaterialStatus, "鍙枡鐘舵��");
+        Check.NotNull(input.Length, "闀垮害(mm)");
+        Check.NotNull(input.MarkingPosition, "鎵撶爜浣嶇疆");
+        Check.NotNull(input.CuttingPosition, "鍒囧壊浣嶇疆");
+        Check.NotNull(input.Quantity, "绠℃鏁伴噺");
+        Check.NotNull(input.FlangeThickness, "娉曞叞鍘氬害(mm)");
+        Check.NotNull(input.FlangeInnerDiameter, "娉曞叞鐩村緞(mm)");
+        Check.NotNull(input.PipeDiameter, "濂楃闀垮害(mm)");
+        Check.NotNull(input.PipeWallThickness, "濂楃鐩村緞(mm)");
+        Check.NotNull(input.OuterDiameter, "澶栧緞(mm)");
+        Check.NotNull(input.Thickness, "澹佸帤(mm)");
 
         return Task.CompletedTask;
     }
+
+    /// <summary> 
+    /// 鏍规嵁鏉′欢鑾峰彇浣滀笟璁″垝琛ㄥ垪琛� 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    public async Task<List<WorkPlan>> GetListByFilterAsync(Expression<Func<WorkPlan, bool>> whereConditions, CancellationToken cancellationToken = default)
+    {
+        return await _workPlanRepository.GetListByFilterAsync(whereConditions);
+    }
+
+    /// <summary> 
+    ///  鏍规嵁鏉′欢鑾峰彇鍗曚釜浣滀笟璁″垝琛� 
+    /// </summary> 
+    /// <param name="whereConditions"></param> 
+    /// <param name="isMultipleThrowException">鏄惁鏌ヨ鍑哄鏉″氨鎶ラ敊</param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    /// <exception cref="UserFriendlyException"></exception> 
+    public async Task<WorkPlan> GetSingleByFilterAsync(Expression<Func<WorkPlan, bool>> whereConditions, bool is鈥婱ultipleThrowException = false, CancellationToken cancellationToken = default)
+    {
+        return await _workPlanRepository.GetSingleByFilterAsync(whereConditions, is鈥婱ultipleThrowException);
+    }
+
+
+    /// <summary> 
+    /// 鏍规嵁鏉′欢鑾峰彇浣滀笟璁″垝琛ㄥ垪琛�
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    public virtual async Task<List<WorkPlanDto>> FindListByFilterAsync(GetWorkPlanInput input, CancellationToken cancellationToken = default)
+    {
+        Check.NotNull(input, nameof(input));
+
+        if (input.Sorting.IsNullOrWhiteSpace())
+        {
+            input.Sorting = nameof(WorkPlan.Sort);
+        }
+
+        #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+
+        //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+        var whereConditions = DynamicGetQueryParams(input);
+
+        #endregion
+
+        var list = await _workPlanRepository.GetListByFilterAsync(whereConditions?.data);
+
+        return new List<WorkPlanDto>(ObjectMapper.Map<List<WorkPlan>, List<WorkPlanDto>>(list));
+    }
+    /// <summary> 
+    /// 鏍规嵁鏉′欢鑾峰彇鍗曚釜浣滀笟璁″垝琛�
+    /// </summary> 
+    /// <param name="input"></param> 
+    /// <returns></returns> 
+    public virtual async Task<WorkPlanDto> FindSingleByFilterAsync(GetWorkPlanInput input, CancellationToken cancellationToken = default)
+    {
+        Check.NotNull(input, nameof(input));
+
+        if (input.Sorting.IsNullOrWhiteSpace())
+        {
+            input.Sorting = nameof(WorkPlan.Sort);
+        }
+
+        #region 鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+
+        //鍔ㄦ�佹瀯閫犳煡璇㈡潯浠�  
+        var whereConditions = DynamicGetQueryParams(input);
+
+        #endregion
+
+        var dataObj = await _workPlanRepository.GetSingleByFilterAsync(whereConditions?.data);
+
+        return (ObjectMapper.Map<WorkPlan, WorkPlanDto>(dataObj));
+    }
 }

--
Gitblit v1.9.3