From 8372214fbc4db844645b846b286c441c1822af3d Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周六, 10 5月 2025 15:08:07 +0800
Subject: [PATCH] 第一版提交

---
 PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/WorkPlanAppService.cs |  553 +++++++++++++++++++++++++++++++++---------------------
 1 files changed, 337 insertions(+), 216 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..dccb3af 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,12 @@
 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;
 
 namespace CMS.Plugin.PipeLineLems.Application.Implements;
 
@@ -19,14 +25,16 @@
 public class WorkPlanAppService : CMSPluginAppService, IWorkPlanAppService
 {
     private readonly IWorkPlanRepository workPlanRepository;
+    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, IServiceProvider serviceProvider)
     {
         workPlanRepository = _WorkPlanRepository;
+        _serviceProvider = serviceProvider;
     }
 
     /// <summary> 
@@ -144,7 +152,19 @@
         input.MapExtraPropertiesTo(updateObj, MappingPropertyDefinitionChecks.None);
 
         updateObj.TaskCode = input.TaskCode;
-        updateObj.OrgMaterialCode = input.OrgMaterialCode;
+        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;
@@ -153,45 +173,18 @@
         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.Thickness = input.Thickness;
         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.TeamInfo = input.TeamInfo;
+        updateObj.Timestamp = input.Timestamp;
         updateObj.Remark = input.Remark;
-        updateObj.IsDisabled = input.IsDisabled;
 
 
         await workPlanRepository.UpdateAsync(updateObj);
@@ -308,188 +301,308 @@
     /// <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;
+        //杞崲鏁版嵁
+        var result = ObjectMapper.Map<List<WorkPlansImportModel.WorkPlanImportModel>, List<WorkPlanInput>>(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,
-                        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,
-                        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,
-
-                    };
-
-                    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);
-            }
-        }
+        await CreatebyApsAsync(result);
     }
+
+
+    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> 
     /// 瀵煎嚭浣滀笟璁″垝琛� 
@@ -521,7 +634,7 @@
             ["閰嶇疆"] = ExportHelper.ConvertListToExportData(result),
         };
 
-        var fileName = result.Count > 1 ? "浣滀笟璁″垝琛ㄥ垪琛�" : result.Count == 1 ? result[0]?.TaskCode : "WorkPlan妯$増";
+        var fileName = "浣滀笟璁″垝";
         return (sheets, fileName);
     }
 
@@ -533,10 +646,18 @@
     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.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)");
+        Check.NotNull(input.HasMainSignature, "鏄惁涓绘敮绠�");
 
         return Task.CompletedTask;
     }

--
Gitblit v1.9.3