PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/MesAppService.cs
@@ -11,14 +11,14 @@ namespace CMS.Plugin.PipeLineLems.Application.Implements; public class SharedService : CMSPluginAppService public class MesAppService : CMSPluginAppService { private readonly IServiceProvider _serviceProvider; private readonly IWorkPlanAppService _workPlanAppService; //private readonly IEventBus _eventBus; public SharedService(IServiceProvider serviceProvider public MesAppService(IServiceProvider serviceProvider , IWorkPlanAppService workPlanAppService //, IEventBus eventBus ) PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/SharedService.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,153 @@ 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.ProductManagement.Abstractions; using Microsoft.Extensions.DependencyInjection; using Volo.Abp; using Microsoft.Extensions.DependencyInjection; namespace CMS.Plugin.PipeLineLems.Application.Implements; /// <summary> /// ä½ä¸è®¡å表åºç¨æå¡ /// </summary> public class SharedService: CMSPluginAppService { public async Task<MesOrderResponse> CommonCreatebyApsAsync(List<WorkPlanInput> input, IServiceProvider _serviceProvider, WorkPlanAppService workPlanAppService) { 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 workPlanAppService.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; } } PipeLineLems/server/src/CMS.Plugin.PipeLineLems.Application/Implements/WorkPlanAppService.cs
@@ -26,15 +26,17 @@ { private readonly IWorkPlanRepository workPlanRepository; private readonly IServiceProvider _serviceProvider; private readonly SharedService _sharedService; /// <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, IServiceProvider serviceProvider, SharedService sharedService) { workPlanRepository = _WorkPlanRepository; _serviceProvider = serviceProvider; _sharedService = sharedService; } /// <summary> @@ -305,141 +307,15 @@ //è½¬æ¢æ°æ® var result = ObjectMapper.Map<List<WorkPlansImportModel.WorkPlanImportModel>, List<WorkPlanInput>>(input.WorkPlans); await CreatebyApsAsync(result); //await CreatebyApsAsync(result); await _sharedService.CommonCreatebyApsAsync(result, _serviceProvider, this); } 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 }; var response=await _sharedService.CommonCreatebyApsAsync(input, _serviceProvider, this); return response; } PipeLineLems/server/src/CMS.Plugin.PipeLineLems/Controller/WorkPlanPublicController.cs
@@ -1,44 +1,44 @@ using CMS.Extensions.Abp.AspNetCore.Mvc.Filters; using CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.WorkPlan; using CMS.Plugin.PipeLineLems.Application.Contracts.Services; using Microsoft.AspNetCore.Mvc; using System.Reflection; //using CMS.Extensions.Abp.AspNetCore.Mvc.Filters; //using CMS.Plugin.PipeLineLems.Application.Contracts.Dtos.WorkPlan; //using CMS.Plugin.PipeLineLems.Application.Contracts.Services; //using Microsoft.AspNetCore.Mvc; //using System.Reflection; namespace CMS.Plugin.PipeLineLems.Controller { /// <summary> /// ä½ä¸è®¡åæå¡ /// </summary> [ApiController] [TypeFilter(typeof(CMSLanguageFilter))] [TypeFilter(typeof(CMSUowActionFilter))] [TypeFilter(typeof(CMSAuditActionFilter))] [TypeFilter(typeof(CMSExceptionFilter))] [Route("api/v{version:apiVersion}/PipeLineLems/[controller]")] public class WorkPlanPublicController : ControllerBase { //namespace CMS.Plugin.PipeLineLems.Controller //{ // /// <summary> // /// ä½ä¸è®¡åæå¡ // /// </summary> // [ApiController] // [TypeFilter(typeof(CMSLanguageFilter))] // [TypeFilter(typeof(CMSUowActionFilter))] // [TypeFilter(typeof(CMSAuditActionFilter))] // [TypeFilter(typeof(CMSExceptionFilter))] // [Route("api/v{version:apiVersion}/PipeLineLems/[controller]")] // public class WorkPlanPublicController : ControllerBase // { private readonly IMesAppService _mesAppService; /// <summary> /// Initializes a new instance of the <see cref="TestEntityNameController"/> class. /// </summary> /// <param name="testentitynameAppService">The testentityname application service.</param> public WorkPlanPublicController(IMesAppService mesAppService) { _mesAppService = mesAppService; } // private readonly IMesAppService _mesAppService; // /// <summary> // /// Initializes a new instance of the <see cref="TestEntityNameController"/> class. // /// </summary> // /// <param name="testentitynameAppService">The testentityname application service.</param> // public WorkPlanPublicController(IMesAppService mesAppService) // { // _mesAppService = mesAppService; // } /// <summary> /// è·åç产计å. /// </summary> /// <param name="input">æ è¯ç¬¦.</param> /// <returns></returns> [HttpPost] public virtual async Task<MesOrderResponse> GetWorkPlanAsync([FromBody] List<WorkPlanInput> input) { return await _mesAppService.CreateAsync(input); } // /// <summary> // /// è·åç产计å. // /// </summary> // /// <param name="input">æ è¯ç¬¦.</param> // /// <returns></returns> // [HttpPost] // public virtual async Task<MesOrderResponse> GetWorkPlanAsync([FromBody] List<WorkPlanInput> input) // { // return await _mesAppService.CreateAsync(input); // } } } // } //}