| | |
| | | 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.TaskInfo; |
| | | using WIDESEAWCS_ISystemServices; |
| | | using WIDESEAWCS_ITaskInfoRepository; |
| | |
| | | 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 |
| | | { |
| | |
| | | private readonly IMapper _mapper; |
| | | private readonly IDt_StationManagerService _stationManagerService; |
| | | private readonly ISys_ConfigService _sys_ConfigService; |
| | | private readonly ICacheService _cacheService; |
| | | private readonly INoticeService _noticeService; |
| | | |
| | | public CommonConveyorLine_AfterJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, IDt_StationManagerService stationManagerService, ISys_ConfigService sys_ConfigService) |
| | | public CommonConveyorLine_AfterJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, IDt_StationManagerService stationManagerService, ISys_ConfigService sys_ConfigService, ICacheService cacheService, INoticeService noticeService) |
| | | { |
| | | _taskService = taskService; |
| | | _taskExecuteDetailService = taskExecuteDetailService; |
| | |
| | | _taskRepository = taskRepository; |
| | | _stationManagerService = stationManagerService; |
| | | _sys_ConfigService = sys_ConfigService; |
| | | _cacheService = cacheService; |
| | | _noticeService = noticeService; |
| | | } |
| | | |
| | | public async Task Execute(IJobExecutionContext context) |
| | |
| | | method.Invoke(this, new object[] { conveyorLine, command, station }); |
| | | } |
| | | } |
| | | //if (station.stationType == 6 && station.stationArea == "3") |
| | | //{ |
| | | // await GetEmptyTrayAsync(station); |
| | | //} |
| | | if (station.stationType == 6 && station.stationArea == "3") |
| | | { |
| | | await GetEmptyTrayAsync(station); |
| | | } |
| | | |
| | | #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 |
| | | { |
| | | childDeviceCode = station.stationChildCode, |
| | | commandAfter = command, |
| | | }; |
| | | _noticeService.StackerData(userIds?.FirstOrDefault(), userTokenIds, new { conveyorLine.DeviceName, data = obj }); |
| | | |
| | | #endregion 调用事件总线通知前端 |
| | | } |
| | | |
| | | #region 路由方式 |
| | |
| | | public void RequestInbound(CommonConveyorLine_After conveyorLine, ConveyorLineTaskCommand_After command, Dt_StationManager stationInfo) |
| | | { |
| | | ConsoleHelper.WriteSuccessLine($"【{conveyorLine.DeviceName}】,托盘号:【{command.ConveyorLineBarcode}】,站台:【{stationInfo.remark}】请求任务"); |
| | | |
| | | //if() |
| | | |
| | | var taskNew = _taskService.QueryTaskByPalletCode(command.ConveyorLineBarcode, stationInfo.Roadway); |
| | | if (taskNew == null) |
| | | { |
| | |
| | | conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 1, stationInfo.stationChildCode); |
| | | //conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineTargetAddress, 1, task.NextAddress); |
| | | //ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); |
| | | } |
| | | } |
| | | else //如果任务请求失败 |
| | | { |
| | | //如果请求位置与NG位置一直 则写当前位置让线体退回 |
| | | if (stationInfo.stationChildCode == stationInfo.stationNGChildCode) |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 1, stationInfo.stationChildCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineTargetAddress, stationInfo.stationChildCode, stationInfo.stationChildCode); |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = "", EquiCodeMOM = stationManager.stationEquipMOM, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = stationManager.stationChildCode }.ToJsonString()); |
| | | WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result); |
| | | if(!content.Status) |
| | | if (!content.Status) |
| | | { |
| | | //ConsoleHelper.WriteErrorLine($"分容呼叫空托盘失败{content.Message}"); |
| | | return; |