From 9a83dbb67b223e94a946e1bf7db59336e7fb2f28 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周四, 15 5月 2025 14:51:29 +0800
Subject: [PATCH] 22

---
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/WorkPlanAppService.cs |  541 +++++++++++++++++++++--------------------------------
 1 files changed, 216 insertions(+), 325 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 dccb3af..1372c83 100644
--- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/WorkPlanAppService.cs
+++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/WorkPlanAppService.cs
@@ -10,12 +10,7 @@
 using Volo.Abp.Data;
 using Volo.Abp.ObjectExtending;
 using Volo.Abp.ObjectMapping;
-using CMS.Plugin.FormulaManagement.Abstractions;
-using CMS.Plugin.OrderManagement.Abstractions.Enums;
-using CMS.Plugin.OrderManagement.Abstractions.Models;
-using CMS.Plugin.OrderManagement.Abstractions;
-using CMS.Plugin.ProductManagement.Abstractions;
-using Microsoft.Extensions.DependencyInjection;
+using Volo.Abp.Users;
 
 namespace CMS.Plugin.PipeLineLems.Application.Implements;
 
@@ -24,16 +19,17 @@
 /// </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, IServiceProvider serviceProvider)
+    public WorkPlanAppService(IWorkPlanRepository workPlanRepository, SharedService sharedService, IServiceProvider serviceProvider)
     {
-        workPlanRepository = _WorkPlanRepository;
+        _workPlanRepository = workPlanRepository;
+        _sharedService = sharedService;
         _serviceProvider = serviceProvider;
     }
 
@@ -44,7 +40,18 @@
     /// <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> 
+    /// 鎸夌収 鍘熸枡鏍囪 鏌ユ壘浣滀笟璁″垝琛� 
+    /// </summary> 
+    /// <param name="name"></param> 
+    /// <param name="cancellationToken"></param> 
+    /// <returns></returns> 
+    public virtual async Task<List<WorkPlan>> FindByDataIdentifierAsync(string dataIdentifier)
+    {
+        return await _workPlanRepository.FindByDataIdentifierAsync(dataIdentifier);
     }
 
     /// <summary> 
@@ -68,8 +75,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));
     }
@@ -107,20 +114,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) 
         //{ 
@@ -141,8 +149,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]);
@@ -152,6 +160,8 @@
         input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None);
 
         updateObj.TaskCode = input.TaskCode;
+        updateObj.WorkPlanStatus = input.WorkPlanStatus;
+        updateObj.CallMaterialStatus = input.CallMaterialStatus;
         updateObj.DataIdentifier = input.DataIdentifier;
         updateObj.MaterialMode = input.MaterialMode;
         updateObj.Length = input.Length;
@@ -169,7 +179,7 @@
         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;
@@ -178,7 +188,6 @@
         updateObj.OuterDiameter = input.OuterDiameter;
         updateObj.Thickness = input.Thickness;
         updateObj.Material = input.Material;
-        updateObj.HasMainSignature = input.HasMainSignature;
         updateObj.ProcessRouteNumber = input.ProcessRouteNumber;
         updateObj.PlannedStartTime = input.PlannedStartTime;
         updateObj.PlannedEndTime = input.PlannedEndTime;
@@ -187,7 +196,7 @@
         updateObj.Remark = input.Remark;
 
 
-        await workPlanRepository.UpdateAsync(updateObj);
+        await _workPlanRepository.UpdateAsync(updateObj);
 
         return ObjectMapper.Map<WorkPlan, WorkPlanDto>(updateObj);
     }
@@ -239,7 +248,7 @@
     /// <returns></returns> 
     public virtual Task DeleteAsync(Guid id)
     {
-        return workPlanRepository.DeleteAsync(id);
+        return _workPlanRepository.DeleteAsync(id);
     }
 
     /// <summary> 
@@ -263,7 +272,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;
@@ -290,7 +299,7 @@
             }
         }
 
-        await workPlanRepository.UpdateManyAsync(list);
+        await _workPlanRepository.UpdateManyAsync(list);
     }
 
     /// <summary> 
@@ -299,310 +308,167 @@
     /// <param name="input"></param> 
     /// <returns></returns> 
     /// <exception cref="UserFriendlyException"></exception> 
-    public async Task ImportAsync(WorkPlansImportModel input)
+    public async Task ImportAsync(WorkPlansImportModel input, string userId, string userAccount)
     {
-
         //杞崲鏁版嵁
         var result = ObjectMapper.Map<List<WorkPlansImportModel.WorkPlanImportModel>, List<WorkPlanInput>>(input.WorkPlans);
 
-        await CreatebyApsAsync(result);
+        //await CreatebyApsAsync(result);
+        await _sharedService.CommonCreatebyApsAsync(result, _serviceProvider, this, userId, userAccount);
+        //        Check.NotNull(input, nameof(input)); 
+
+        //        var workPlanCreateDtos = new List<(int RowIndex, WorkPlanCreateDto Item)>(); 
+        //        var workPlanUpdateDtos = new List<(int RowIndex, Guid Id, WorkPlanUpdateDto Item)>(); 
+        //        var importItems = input.WorkPlans; 
+
+        //        if (importItems != null && importItems.Any()) 
+        //        { 
+        //            #region 瀵煎叆鏍¢獙 
+
+        //            // 鍒ゆ柇鍚嶇О鏄惁閲嶅锛屽苟杈撳嚭绗嚑琛岄噸澶� 
+        //            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); 
+        //            } 
+
+        //            #endregion 
+
+        //            foreach (var impItem in importItems) 
+        //            { 
+        //                if (impItem.TaskCode.IsNullOrWhiteSpace()) 
+        //                { 
+        //                    continue; 
+        //                } 
+
+        //                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,
+        //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); 
+        //            } 
+        //        } 
+
+        //        // 鏇存柊 
+        //        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); 
+        //            } 
+        //        } 
     }
-
-
-    public async Task<MesOrderResponse> CreatebyApsAsync(List<WorkPlanInput> input)
-    {
-        if (input == null)
-        {
-            throw new UserFriendlyException("杈撳叆鍙傛暟涓嶈兘涓虹┖");
-        }
-
-        if (input.Count == 0)
-        {
-            throw new UserFriendlyException("杈撳叆鍙傛暟Data涓嶈兘涓虹┖");
-        }
-
-        var orderManager = _serviceProvider.GetRequiredService<IOrderManager>();
-        var productProvider = _serviceProvider.GetRequiredService<IProductProvider>();
-        var formulaProvider = _serviceProvider.GetRequiredService<IFormulaProvider>();
-        List<OrderModel> orderModels = new List<OrderModel>();
-        //鎸夌収浠诲姟缂栧彿鍒嗙粍
-        var groupTask = input.GroupBy(x => x.TaskCode);
-        foreach (var gTask in groupTask)
-        {
-            var taskCode = gTask.Key;
-            var order = await orderManager.GetByCodeAsync(taskCode);
-            if (order != null)
-            {
-                throw new UserFriendlyException($"浠诲姟缂栧彿[{taskCode}]宸插瓨鍦�");
-            }
-
-
-            //var product = await productProvider.FindByNameAsync(orderItem.PipeSectionName);
-            //if (product == null)
-            //{
-            //    throw new UserFriendlyException($"浜у搧鍚嶇О[{orderItem.PipeSectionName}]涓嶅瓨鍦�");
-            //}
-
-            //var formula = await formulaProvider.GetFormulaAsync(product.Id);
-            //if (formula == null)
-            //{
-            //    throw new UserFriendlyException($"浜у搧鍨嬪彿[{orderItem.MaterialCode}]鏃犲叧鑱旈厤鏂�");
-            //}
-            //棣栧厛瑕佸垱寤� 鎵撶爜鍒囧壊鐨勫伐鍗� 
-            var productForCut = await productProvider.FindByNameAsync("鍒囧壊鍘熸枡绠�");
-            if (productForCut == null)
-            {
-                throw new UserFriendlyException($"浜у搧鍚嶇О[鍒囧壊鍘熸枡绠涓嶅瓨鍦�");
-            }
-            var formulaForCut = await formulaProvider.GetFormulaAsync(productForCut.Id);
-            if (formulaForCut == null)
-            {
-                throw new UserFriendlyException($"浜у搧鍚嶇О[鍒囧壊鍘熸枡绠鏃犲叧鑱旈厤鏂�");
-            }
-            //鍒嗙粍鏁版嵁
-            var group = gTask.ToList().GroupBy(x => x.DataIdentifier);
-            foreach (var item in group)
-            {
-                OrderModel orderModelForCut = new OrderModel()
-                {
-                    Id = Guid.NewGuid(),
-                    Code = "Cut_" + taskCode,
-                    Source = "APS鎺ㄩ��",
-                    PlanStartTime = gTask.ToList().First().PlannedStartTime,
-                    PlanFinishTime = gTask.ToList().First().PlannedEndTime,
-                    PlanQty = (ulong)item.ToList().Count,
-                    Status = OrderStatus.NotActive,
-                    Product = new AssociationProductModel() { Id = productForCut.Id, Name = productForCut.Name, Model = productForCut.Model, ShortNumber = productForCut.ShortNumber },
-                    Formula = new AssociationFormulaModel() { Id = formulaForCut.Id, Code = formulaForCut.Code, Name = formulaForCut.Name }
-                };
-                orderModelForCut.ExtraProperties["OuterDiameter"] = gTask.ToList().First().OuterDiameter;//澶栧緞
-                orderModelForCut.ExtraProperties["Material"] = gTask.ToList().First().Material;//鏉愯川
-                orderModelForCut.ExtraProperties["Length"] = gTask.ToList().First().Length;//闀垮害
-
-                var orderForCut = await orderManager.GetByCodeAsync(orderModelForCut.Code);
-                if (orderForCut != null)
-                {
-                    //throw new UserFriendlyException($"宸ュ崟[{orderModelForCut.Code}]宸插瓨鍦�");
-                    //涓嶅啀鎶涘紓甯革紝鐩存帴璺宠繃
-                    break;
-                }
-
-                var orderModelResultForCut = await orderManager.CreateAsync(orderModelForCut);
-                if (orderModelResultForCut == null)
-                {
-                    throw new UserFriendlyException($"宸ュ崟[{orderModelForCut.Code}]鍒涘缓澶辫触");
-                }
-                orderModels.Add(orderModelResultForCut);
-
-
-                //OrderModel orderModel = new OrderModel();
-                //orderModel.Id = Guid.NewGuid();
-                //orderModel.Code = orderItem.TaskCode;
-                //orderModel.Source = "APS鎺ㄩ��";
-                //orderModel.Product = new AssociationProductModel() { Id = product.Id, Name = product.Name, Model = product.Model, ShortNumber = product.ShortNumber };
-                ////orderModel.Formula = new AssociationFormulaModel() { Id = formula.Id, Code = formula.Code, Name = formula.Name };
-                //orderModel.PlanStartTime = orderItem.PlannedStartTime;
-                //orderModel.PlanFinishTime = orderItem.PlannedEndTime;
-                //orderModel.PlanQty = (ulong?)orderItem.OrderQty;
-                //orderModel.Status = OrderStatus.NotActive;
-                //orderModel.ExtraProperties["Source"] = "ddd";
-                //var source = orderModel.ExtraProperties["Source"];
-                //var orderModelResult = await orderManager.CreateAsync(orderModel);
-                //if (orderModelResult == null)
-                //{
-                //    throw new UserFriendlyException($"宸ュ崟[{orderItem.TaskCode}]鍒涘缓澶辫触");
-                //}
-                //orderModels.Add(orderModelResult);
-            }
-
-        }
-
-
-        //淇濆瓨鍒拌〃涓�
-        foreach (var item in input)
-        {
-            var insertObj = ObjectMapper.Map<WorkPlanInput, WorkPlanCreateDto>(item);
-            //insertObj.OrgMaterialCode = "1111";
-            insertObj.Sort = 1;
-            await CreateAsync(insertObj);
-        }
-
-
-        // 鍙戝竷浜嬩欢
-        //await _eventBus.PublishAsync(new EntityChangedEto("MESCREATE", input, null, EntityChangeType.Add, true));
-
-        var response = new MesOrderResponse
-        {
-            Code = "000000",
-            Data = orderModels,
-            Fail = false,
-            Mesg = "澶勭悊鎴愬姛",
-            Success = true,
-            Time = DateTime.UtcNow
-        };
-        return response;
-    }
-
-    ///// <summary> 
-    ///// 瀵煎叆浣滀笟璁″垝琛� 
-    ///// </summary> 
-    ///// <param name="input"></param> 
-    ///// <returns></returns> 
-    ///// <exception cref="UserFriendlyException"></exception> 
-    //public async Task ImportAsync(WorkPlansImportModel input)
-    //{
-    //    Check.NotNull(input, nameof(input));
-
-    //    var workPlanCreateDtos = new List<(int RowIndex, WorkPlanCreateDto Item)>();
-    //    var workPlanUpdateDtos = new List<(int RowIndex, Guid Id, WorkPlanUpdateDto Item)>();
-    //    var importItems = input.WorkPlans;
-
-    //    if (importItems != null && importItems.Any())
-    //    {
-    //        #region 瀵煎叆鏍¢獙 
-
-    //        // 鍒ゆ柇鍚嶇О鏄惁閲嶅锛屽苟杈撳嚭绗嚑琛岄噸澶� 
-    //        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);
-    //        }
-
-    //        #endregion
-
-    //        foreach (var impItem in importItems)
-    //        {
-    //            if (impItem.TaskCode.IsNullOrWhiteSpace())
-    //            {
-    //                continue;
-    //            }
-
-    //            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,
-    //                    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,
-    //                    HasMainSignature = impItem.HasMainSignature,
-    //                    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,
-    //                    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,
-    //                    HasMainSignature = impItem.HasMainSignature,
-    //                    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);
-    //        }
-    //    }
-
-    //    // 鏇存柊 
-    //    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> 
     /// 瀵煎嚭浣滀笟璁″垝琛� 
@@ -626,7 +492,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>
@@ -647,6 +513,8 @@
     {
         Check.NotNull(input, nameof(input));
         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, "鍒囧壊浣嶇疆");
@@ -657,8 +525,31 @@
         Check.NotNull(input.PipeWallThickness, "濂楃鐩村緞(mm)");
         Check.NotNull(input.OuterDiameter, "澶栧緞(mm)");
         Check.NotNull(input.Thickness, "澹佸帤(mm)");
-        Check.NotNull(input.HasMainSignature, "鏄惁涓绘敮绠�");
 
         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);
+    }
 }

--
Gitblit v1.9.3