| | |
| | | using Autofac.Core; |
| | | using WIDESEAWCS_DTO.TaskInfo; |
| | | using AutoMapper; |
| | | using WIDESEAWCS_Tasks.æ¿æä»; |
| | | using HslCommunication.WebSocket; |
| | | using WIDESEAWCS_Tasks.æµè¯æ¶ä»; |
| | | |
| | | namespace WIDESEAWCS_Tasks |
| | | { |
| | |
| | | private readonly IRouterService _routerService; |
| | | private readonly IStationMangerRepository _stationMangerRepository; |
| | | private readonly IRouterRepository _routerRepository; |
| | | public static BCReadData bCReadData = new BCReadData(); |
| | | private List<Dt_ApiInfo> apiInfos; |
| | | private readonly List<Dt_WarehouseDevice> warehouseDevices; |
| | | private WebSocketServer _webSocketServer; |
| | | |
| | | public StackerCraneJob_BC(IMapper mapper, ITaskService taskService, ICacheService cacheService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IRouterService routerService, IStationMangerRepository stationMangerRepository, IRouterRepository routerRepository) |
| | | public StackerCraneJob_BC(IMapper mapper, ITaskService taskService, ICacheService cacheService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IRouterService routerService, IStationMangerRepository stationMangerRepository, IRouterRepository routerRepository,WebSocketServer webSocketServer) |
| | | { |
| | | _mapper = mapper; |
| | | _taskService = taskService; |
| | |
| | | _stationMangerRepository = stationMangerRepository; |
| | | _cacheService = cacheService; |
| | | _routerRepository = routerRepository; |
| | | _webSocketServer = webSocketServer; |
| | | |
| | | string? apiInfoStr = _cacheService.Get("apiInfos"); |
| | | if (!string.IsNullOrEmpty(apiInfoStr)) |
| | |
| | | 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) |
| | | { |
| | |
| | | } |
| | | } |
| | | } |
| | | bCReadData.R_BC_Status = ((short)commonStackerCrane.StackerCraneStatusValue); |
| | | bCReadData.R_BC_AutoStatus = ((short)commonStackerCrane.StackerCraneAutoStatusValue); |
| | | bCReadData.R_BC_WorkStatus = ((short)commonStackerCrane.StackerCraneWorkStatusValue); |
| | | bCReadData.R_BC_TaskNum = commonStackerCrane.CurrentTaskNum.ObjToInt(); |
| | | bCReadData.R_BC_WorkType = commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType); |
| | | bCReadData.R_BC_TrayType = commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.TrayType); |
| | | string bCData = JsonConvert.SerializeObject(bCReadData); |
| | | _webSocketServer.PublishAllClientPayload(bCData); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | |
| | | Dt_Task reloTask = _mapper.Map<Dt_Task>(taskDTO); |
| | | //å¤æç§»åºè´§ä½ä»»å¡æ¯å¦å·²åå¨ï¼å¦åå¨å
æ§è¡ |
| | | Dt_Task existTask = _taskService.QueryStackerExistTask(reloTask.PalletCode, reloTask.SourceAddress); |
| | | if (existTask != null) |
| | | if (existTask != null && existTask.TaskState == (int)TaskStatusEnum.SC_Execute) |
| | | { |
| | | return existTask; |
| | | } |
| | | else if (existTask != null && existTask.TaskState == (int)TaskStatusEnum.MesPending) //夿æèµ· |
| | | { |
| | | existTask.TaskState = TaskStatusEnum.SC_Execute.ObjToInt(); |
| | | task.TaskState=TaskStatusEnum.MesPending.ObjToInt(); |
| | | _taskRepository.UpdateData(existTask); |
| | | _taskRepository.UpdateData(task); |
| | | } |
| | | else if (existTask != null && existTask.TaskState != (int)TaskStatusEnum.SC_Execute && existTask.TaskState != (int)TaskStatusEnum.MesPending) |
| | | { |
| | | return null; |
| | | } |
| | | else |
| | | { |
| | | reloTask.TaskState = TaskStatusEnum.SC_Execute.ObjToInt(); |