wangxinhui
昨天 a8756c3526832332db4ef5685348d9b188c2bf2b
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ÓÍÄ«²Ö/StackerCraneJob_YM.cs
@@ -1,4 +1,5 @@
using Microsoft.AspNetCore.Components.Routing;
using HslCommunication.WebSocket;
using Microsoft.AspNetCore.Components.Routing;
using Newtonsoft.Json;
using Quartz;
using System;
@@ -24,6 +25,8 @@
using WIDESEAWCS_QuartzJob.StackerCrane.Enum;
using WIDESEAWCS_Tasks.HoisterJob;
using WIDESEAWCS_Tasks.StackerCraneJob;
using WIDESEAWCS_Tasks.油墨仓;
using WIDESEAWCS_Tasks.阻焊仓;
namespace WIDESEAWCS_Tasks
{
@@ -35,12 +38,14 @@
    {
        private readonly ICacheService _cacheService;
        private readonly ITaskService _taskService;
        public static YMReadData yMReadData = new YMReadData();
        private readonly ITaskExecuteDetailService _taskExecuteDetailService;
        private readonly ITaskRepository _taskRepository;
        private readonly IRouterService _routerService;
        private readonly IStationMangerRepository _stationMangerRepository;
        private WebSocketServer _webSocketServer;
        public StackerCraneJob_YM(ITaskService taskService, ICacheService cacheService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IRouterService routerService, IStationMangerRepository stationMangerRepository)
        public StackerCraneJob_YM(ITaskService taskService, ICacheService cacheService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IRouterService routerService, IStationMangerRepository stationMangerRepository,WebSocketServer webSocketServer)
        {
            _cacheService = cacheService;
            _taskService = taskService;
@@ -48,6 +53,7 @@
            _taskRepository = taskRepository;
            _routerService = routerService;
            _stationMangerRepository = stationMangerRepository;
            _webSocketServer = webSocketServer;
        }
        public Task Execute(IJobExecutionContext context)
@@ -67,6 +73,7 @@
                        commonStackerCrane.CheckStackerCraneTaskCompleted();//防止任务完成事件监测超时,再手动触发一次
                        if (commonStackerCrane.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && commonStackerCrane.StackerCraneStatusValue == StackerCraneStatus.Normal && commonStackerCrane.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby)
                        {
                            Thread.Sleep(1000);
                            Dt_Task? task = GetTask(commonStackerCrane);
                            if (task != null)
                            {
@@ -86,6 +93,14 @@
                                }
                            }
                        }
                        yMReadData.R_YM_Status = ((short)commonStackerCrane.StackerCraneStatusValue);
                        yMReadData.R_YM_AutoStatus = ((short)commonStackerCrane.StackerCraneAutoStatusValue);
                        yMReadData.R_YM_WorkStatus = ((short)commonStackerCrane.StackerCraneWorkStatusValue);
                        yMReadData.R_YM_TaskNum = commonStackerCrane.CurrentTaskNum.ObjToInt();
                        yMReadData.R_YM_WorkType = commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType);
                        yMReadData.R_YM_TrayType = commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.TrayType);
                        string yMData = JsonConvert.SerializeObject(yMReadData);
                        _webSocketServer.PublishAllClientPayload(yMData);
                    }
                }
                catch (Exception ex)
@@ -172,7 +187,7 @@
                }
                else
                {
                    List<string> otherOutStaionCodes = _routerService.QueryNextRoutes(commonStackerCrane.DeviceCode, task.NextAddress).Select(x => x.ChildPosi).ToList();
                    List<string> otherOutStaionCodes = _routerService.QueryNextRoutes(commonStackerCrane.DeviceCode, task.NextAddress,task.TaskType).Select(x => x.ChildPosi).ToList();
                    List<Dt_Task> tasks = _taskService.QueryStackerCraneOutTasks(commonStackerCrane.DeviceCode, otherOutStaionCodes);
                    foreach (var item in tasks)
                    {