From 01ba2e2affa33320ef8aca6e033248388bb8f60e Mon Sep 17 00:00:00 2001 From: 肖洋 <cathay_xy@163.com> Date: 星期二, 10 十二月 2024 11:04:41 +0800 Subject: [PATCH] 高温出库修改 --- Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_GW/CommonConveyorLine_GWJob.cs | 86 ++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 80 insertions(+), 6 deletions(-) diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_GW/CommonConveyorLine_GWJob.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_GW/CommonConveyorLine_GWJob.cs index bf6ee84..530f02e 100644 --- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_GW/CommonConveyorLine_GWJob.cs +++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_GW/CommonConveyorLine_GWJob.cs @@ -25,6 +25,7 @@ using Quartz; using SqlSugar; using System.Diagnostics.CodeAnalysis; +using System.Net; using System.Reflection; using System.Threading.Tasks; using WIDESEAWCS_BasicInfoRepository; @@ -32,7 +33,10 @@ using WIDESEAWCS_Common; using WIDESEAWCS_Common.TaskEnum; using WIDESEAWCS_Core; +using WIDESEAWCS_Core.Caches; using WIDESEAWCS_Core.Helper; +using WIDESEAWCS_Core.HttpContextUser; +using WIDESEAWCS_DTO.MOM; using WIDESEAWCS_DTO.TaskInfo; using WIDESEAWCS_IProcessRepository; using WIDESEAWCS_ISystemRepository; @@ -44,7 +48,9 @@ using WIDESEAWCS_QuartzJob.DeviceBase; using WIDESEAWCS_QuartzJob.DTO; using WIDESEAWCS_QuartzJob.Service; +using WIDESEAWCS_SignalR; using WIDESEAWCS_Tasks.ConveyorLineJob; +using ICacheService = WIDESEAWCS_Core.Caches.ICacheService; namespace WIDESEAWCS_Tasks { @@ -59,8 +65,10 @@ private readonly ISys_ConfigService _sys_ConfigService; private readonly IMapper _mapper; private readonly IDt_StationManagerRepository _stationManagerRepository; + private readonly ICacheService _cacheService; + private readonly INoticeService _noticeService; - public CommonConveyorLine_GWJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, IPlatFormRepository platFormRepository, ISys_ConfigService sys_ConfigService, IDt_StationManagerRepository stationManagerRepository) + public CommonConveyorLine_GWJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, IPlatFormRepository platFormRepository, ISys_ConfigService sys_ConfigService, IDt_StationManagerRepository stationManagerRepository, ICacheService cacheService, INoticeService noticeService) { _taskService = taskService; _taskExecuteDetailService = taskExecuteDetailService; @@ -70,6 +78,8 @@ _platFormRepository = platFormRepository; _sys_ConfigService = sys_ConfigService; _stationManagerRepository = stationManagerRepository; + _cacheService = cacheService; + _noticeService = noticeService; } public Task Execute(IJobExecutionContext context) @@ -104,7 +114,7 @@ { ConveyorLineTaskCommand_After command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand_After>(childDeviceCode); - if (command == null) continue; + if (command == null) continue; if (command.ConveyorLineBarcode.Trim().Contains("\0")) command.ConveyorLineBarcode = ""; DeviceProtocolDetailDTO? deviceProtocolDetails = conveyorLine.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(ConveyorLineTaskCommand_After.InteractiveSignal) && x.ProtocalDetailValue == command.InteractiveSignal.ToString()); @@ -155,6 +165,25 @@ } } + #region 璋冪敤浜嬩欢鎬荤嚎閫氱煡鍓嶇 + + var tokenInfos = _cacheService.Get<List<UserInfo>>("Cache_UserToken"); + if (tokenInfos == null || !tokenInfos.Any()) + { + //throw new Exception(conveyorLine.DeviceName + "缂撳瓨涓湭鎵惧埌Token缂撳瓨"); + continue; + } + var userTokenIds = tokenInfos?.Select(x => x.Token_ID).ToList(); + var userIds = tokenInfos?.Select(x => x.UserId).ToList(); + + object obj = new + { + commandAfter = command, + }; + _noticeService.StackerData(userIds?.FirstOrDefault(), userTokenIds, new { conveyorLine.DeviceName, data = obj }); + + #endregion 璋冪敤浜嬩欢鎬荤嚎閫氱煡鍓嶇 + } #endregion @@ -187,6 +216,7 @@ var task = _taskService.QueryBarCodeConveyorLineTask(command.ConveyorLineBarcode, childDeviceCode); //HandleTaskOut(conveyorLine, command, childDeviceCode, task); // && command.ConveyorLineBarcode != "NoRead" && !command.ConveyorLineBarcode.IsNotEmptyOrNull() + if (task == null) { HandleNewTask(conveyorLine, command, childDeviceCode); @@ -274,6 +304,10 @@ //ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); _taskService.UpdateTaskStatusToNext(task); + if (task.TaskType == (int)TaskOutboundTypeEnum.OutTray) + { + _taskService.UpdateTaskStatusToNext(task); + } } } @@ -288,12 +322,49 @@ Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.ConveyorLineTaskNum, childDeviceCode); if (task != null) { - Dt_Task? newTask = _taskService.UpdatePosition(task.TaskNum, task.CurrentAddress); - if (newTask != null) + var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); + var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.MOMIP_BASE)?.ConfigValue; + var ipAddress = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.TrayCellsStatus)?.ConfigValue; + if (wmsBase == null || ipAddress == null) { - ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(newTask); + throw new InvalidOperationException("MOM IP 鏈厤缃�"); + } + Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationPLC == conveyorLine.DeviceCode && x.stationChildCode == childDeviceCode); + TrayCellsStatusDto trayCells = new TrayCellsStatusDto() + { + Software = "WMS", + TrayBarcode = task.PalletCode, + EquipmentCode = stationManager.stationEquipMOM, + SessionId = Guid.NewGuid().ToString(), + EmployeeNo = "MITest", + SceneType = "1", + RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ") + }; + + var MOMIpAddress = wmsBase + ipAddress; + + var result = HttpHelper.PostAsync(MOMIpAddress, trayCells.ToJsonString()).Result; + WriteInfo("鍏ョ珯鏍¢獙", $"銆恵childDeviceCode}銆戝叆绔欐牎楠岃姹傚弬鏁般�恵trayCells.ToJsonString()}銆�"); + WriteInfo("鍏ョ珯鏍¢獙", ""); + WriteInfo("鍏ョ珯鏍¢獙", $"銆恵childDeviceCode}銆戝叆绔欐牎楠岃繑鍥炲弬鏁般�恵result}銆�"); + ResultTrayCellsStatus result1 = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(result); + if (result1.Success) + { + Dt_Task? newTask = _taskService.UpdatePosition(task.TaskNum, task.CurrentAddress); + if (newTask != null) + { + ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(newTask); + conveyorLine.SendCommand(taskCommand, childDeviceCode); + conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 1, childDeviceCode); + } + } + else + { + ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(task); + taskCommand.ConveyorLineTargetAddress = Convert.ToInt16(stationManager.stationNGChildCode); conveyorLine.SendCommand(taskCommand, childDeviceCode); conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 1, childDeviceCode); + _taskService.UpdateTaskStatusToNext(task); } } } @@ -320,7 +391,7 @@ else { Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationPLC == conveyorLine.DeviceCode && x.stationChildCode == childDeviceCode); - taskCommand.ConveyorLineTargetAddress = Convert.ToInt16( stationManager.stationLocation); + taskCommand.ConveyorLineTargetAddress = Convert.ToInt16(stationManager.stationLocation); } conveyorLine.SendCommand(taskCommand, childDeviceCode); @@ -422,6 +493,9 @@ return content; } + + + } } #endregion \ No newline at end of file -- Gitblit v1.9.3