| | |
| | | using System; |
| | | using Volo.Abp.BackgroundJobs; |
| | | using Volo.Abp.Uow; |
| | | using CMS.Plugin.PipeLineLems.Application.Contracts.Services; |
| | | using CMS.Plugin.PipeLineLems.Domain.WorkPlan; |
| | | using CMS.Plugin.PipeLineLems.Domain.CallMaterialOrder; |
| | | using System.Collections.Generic; |
| | | |
| | | namespace CMS.Plugin.PipeLineLems.ProjectService |
| | | { |
| | |
| | | private async Task HanlderForPringBarCodeAsync() |
| | | { |
| | | |
| | | var workPlanAppService = _serviceProvider.GetRequiredService<IWorkPlanAppService>(); |
| | | var workPlanRepository = _serviceProvider.GetRequiredService<IWorkPlanRepository>(); |
| | | var callMaterialOrderAppService = _serviceProvider.GetRequiredService<ICallMaterialOrderAppService>(); |
| | | |
| | | using var scope = _serviceProvider.CreateScope(); |
| | | var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); |
| | | using var uow = unitOfWorkManager.Begin(requiresNew: true); |
| | | |
| | | var plcTaskNo = await _variableService.ReadValueAsync("打码进站PLC任务号"); |
| | | |
| | | if (string.IsNullOrEmpty(plcTaskNo?.Content?.Value.SafeString().ToString())) |
| | |
| | | } |
| | | else |
| | | { |
| | | var myTaskNo = plcTaskNo.Content.Value.SafeString().ToString(); |
| | | //TODO:暂时先写入 内部变量 |
| | | Dictionary<string, object?> keyValuePairs = new Dictionary<string, object?> |
| | | { |
| | | { "打码1", "11111111" }, |
| | | { "打码2", "22222222" }, |
| | | { "打码3", "33333333" } |
| | | }; |
| | | _variableService.WriteValueAsync(keyValuePairs); |
| | | |
| | | //TODO:模拟采集参数 |
| | | keyValuePairs = new Dictionary<string, object?> |
| | | |
| | | |
| | | var myTaskNo = plcTaskNo.Content.Value.SafeString().ToString(); |
| | | CallMaterialOrder callMaterialOrder = null; |
| | | try |
| | | { |
| | | //根据wms任务号寻找 叫料工单 |
| | | callMaterialOrder = await callMaterialOrderAppService.FindByWmsTaskNoAsync(myTaskNo); |
| | | if (callMaterialOrder == null) return;//结束 |
| | | |
| | | |
| | | |
| | | //根据原料标识寻找 作业计划 |
| | | var workPlanList = await workPlanAppService.FindByDataIdentifierAsync(callMaterialOrder.DataIdentifier); |
| | | if (workPlanList?.Count == 0) return;//结束 |
| | | |
| | | //TODO:暂时生成产品ID |
| | | //var productID = DateTime.Now.ToString("yyyyMMddHHmmssfff"); |
| | | var productID = workPlanList.First().PipeSpecCode; |
| | | Dictionary<string, object?> keyValuePairs_productID = new Dictionary<string, object?> |
| | | { |
| | | { "打码_ProductID", productID}, |
| | | }; |
| | | var ret = _variableService.WriteValueAsync(keyValuePairs_productID); |
| | | |
| | | //更新为生产中 |
| | | foreach (var item in workPlanList) |
| | | { |
| | | item.WorkPlanStatus = Domain.Shared.Enums.WorkPlanStatusEnum.生产中; |
| | | } |
| | | await workPlanRepository.UpdateManyAsync(workPlanList); |
| | | |
| | | //得到码值 |
| | | var code1 = ""; |
| | | var code2 = ""; |
| | | var code3 = ""; |
| | | var new_workPlanList = workPlanList.Where(x => x.ProcessRouteNumber == "切割").ToList(); |
| | | for (int i = 0; i < new_workPlanList.Count; i++) |
| | | { |
| | | if (i == 0) |
| | | { |
| | | code1 = new_workPlanList[i].MarkingContent; |
| | | } |
| | | if (i == 1) |
| | | { |
| | | code2 = new_workPlanList[i].MarkingContent; |
| | | } |
| | | if (i == 2) |
| | | { |
| | | code3 = new_workPlanList[i].MarkingContent; |
| | | } |
| | | } |
| | | Dictionary<string, object?> keyValuePairs = new Dictionary<string, object?> |
| | | { |
| | | { "打码工件1",code1}, |
| | | { "打码工件2", code2}, |
| | | { "打码工件3", code3 }, |
| | | { "打码管段编码", new_workPlanList.First().PipeSpecCode }, |
| | | { "打码管段名称", new_workPlanList.First().PipeSectionName }, |
| | | { "打码原料管型号", new_workPlanList.First().MaterialMode }, |
| | | { "打码原料标识", new_workPlanList.First().DataIdentifier } |
| | | }; |
| | | _variableService.WriteValueAsync(keyValuePairs); |
| | | |
| | | //TODO:模拟采集参数 |
| | | keyValuePairs = new Dictionary<string, object?> |
| | | { |
| | | { "打码速度", 100}, |
| | | { "打码质量", 2}, |
| | | }; |
| | | var ret2 = _variableService.WriteValueAsync(keyValuePairs); |
| | | var ret2 = _variableService.WriteValueAsync(keyValuePairs); |
| | | |
| | | //TODO:暂时生成产品ID |
| | | //var productID = Guid.NewGuid().ToString(); |
| | | var productID = DateTime.Now.ToString("yyyyMMddHHmmssfff"); |
| | | keyValuePairs = new Dictionary<string, object?> |
| | | { |
| | | { "打码_ProductID", productID}, |
| | | }; |
| | | var ret = _variableService.WriteValueAsync(keyValuePairs); |
| | | |
| | | |
| | | |
| | | uow.CompleteAsync(); |
| | | } |
| | | catch (Exception) |
| | | { |
| | | uow.RollbackAsync(); |
| | | throw; |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | //TODO:暂时先写入 内部变量 |
| | | Dictionary<string, object?> keyValuePairs = new Dictionary<string, object?> |
| | | { |
| | | { "切割1", "555555" }, |
| | | { "切割2", "66666" }, |
| | | { "切割3", "77777" } |
| | | { "切割位置1", "555555" }, |
| | | { "切割位置2", "66666" }, |
| | | { "切割位置3", "77777" } |
| | | }; |
| | | _variableService.WriteValueAsync(keyValuePairs); |
| | | |