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/MesAppService.cs | 288 ++++++++++++++++++++++++++++---------------------------- 1 files changed, 144 insertions(+), 144 deletions(-) diff --git a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/MesAppService.cs b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/MesAppService.cs index ab32c0c..a051028 100644 --- a/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/MesAppService.cs +++ b/PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/MesAppService.cs @@ -1,164 +1,164 @@ -//using CMS.Plugin.FormulaManagement.Abstractions; -//using CMS.Plugin.OrderManagement.Abstractions; -//using CMS.Plugin.OrderManagement.Abstractions.Enums; -//using CMS.Plugin.OrderManagement.Abstractions.Models; -//using CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.WorkPlan; -//using CMS.Plugin.PipeLineLems.Application.Contracts.Services; -//using CMS.Plugin.PipeLineLems.Domain.WorkPlan; -//using CMS.Plugin.ProductManagement.Abstractions; -//using Microsoft.Extensions.DependencyInjection; -//using Volo.Abp; +using CMS.Plugin.FormulaManagement.Abstractions; +using CMS.Plugin.OrderManagement.Abstractions; +using CMS.Plugin.OrderManagement.Abstractions.Enums; +using CMS.Plugin.OrderManagement.Abstractions.Models; +using CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.WorkPlan; +using CMS.Plugin.PipeLineLems.Application.Contracts.Services; +using CMS.Plugin.PipeLineLems.Domain.WorkPlan; +using CMS.Plugin.ProductManagement.Abstractions; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp; -//namespace CMS.Plugin.PipeLineLems.Application.Implements; +namespace CMS.Plugin.PipeLineLems.Application.Implements; -//public class MesAppService : CMSPluginAppService, IMesAppService -//{ -// private readonly IServiceProvider _serviceProvider; -// private readonly IWorkPlanAppService _workPlanAppService; +public class SharedService : CMSPluginAppService +{ + private readonly IServiceProvider _serviceProvider; + private readonly IWorkPlanAppService _workPlanAppService; -// //private readonly IEventBus _eventBus; + //private readonly IEventBus _eventBus; -// public MesAppService(IServiceProvider serviceProvider -// , IWorkPlanAppService workPlanAppService -// //, IEventBus eventBus -// ) -// { -// _serviceProvider = serviceProvider; -// // _eventBus = eventBus; -// _workPlanAppService = workPlanAppService; -// } + public SharedService(IServiceProvider serviceProvider + , IWorkPlanAppService workPlanAppService + //, IEventBus eventBus + ) + { + _serviceProvider = serviceProvider; + // _eventBus = eventBus; + _workPlanAppService = workPlanAppService; + } -// public async Task<MesOrderResponse> CreateAsync(List<WorkPlanInput> input) -// { -// if (input == null) -// { -// throw new UserFriendlyException("杈撳叆鍙傛暟涓嶈兘涓虹┖"); -// } + public async Task<MesOrderResponse> CreateAsync(List<WorkPlanInput> input) + { + if (input == null) + { + throw new UserFriendlyException("杈撳叆鍙傛暟涓嶈兘涓虹┖"); + } -// if (input.Count == 0) -// { -// throw new UserFriendlyException("杈撳叆鍙傛暟Data涓嶈兘涓虹┖"); -// } + 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 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 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 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 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); + 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); -// } + //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 _workPlanAppService.CreateAsync(insertObj); -// } + //淇濆瓨鍒拌〃涓� + foreach (var item in input) + { + var insertObj = ObjectMapper.Map<WorkPlanInput, WorkPlanCreateDto>(item); + //insertObj.OrgMaterialCode = "1111"; + insertObj.Sort = 1; + await _workPlanAppService.CreateAsync(insertObj); + } -// // 鍙戝竷浜嬩欢 -// //await _eventBus.PublishAsync(new EntityChangedEto("MESCREATE", input, null, EntityChangeType.Add, true)); + // 鍙戝竷浜嬩欢 + //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; -// } -//} + var response = new MesOrderResponse + { + Code = "000000", + Data = orderModels, + Fail = false, + Mesg = "澶勭悊鎴愬姛", + Success = true, + Time = DateTime.UtcNow + }; + return response; + } +} -- Gitblit v1.9.3