| | |
| | | { |
| | | try |
| | | { |
| | | |
| | | SpeStackerCrane speStackerCrane = (SpeStackerCrane)context.JobDetail.JobDataMap.Get("JobParams"); |
| | | if (speStackerCrane != null) |
| | | { |
| | |
| | | speStackerCrane.LastTaskType = task.TaskType; |
| | | task.Dispatchertime = DateTime.Now; |
| | | task.ExceptionMessage = ""; |
| | | _taskService.UpdateTask(task, TaskStatusEnum.SC_Executing); |
| | | WebResponseContent webResponseContent = _taskService.UpdateTaskStatusToNext(task.TaskNum); |
| | | //å»¶æ¶1s |
| | | Thread.Sleep(1000); |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// è·åä»»å¡ |
| | | /// </summary> |
| | |
| | | } |
| | | |
| | | task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); //è·åå
¥åºä»»å¡ |
| | | if(task != null) |
| | | if (task != null) |
| | | { |
| | | return task; //妿æä»»å¡åç´æ¥ä¸åç»å åæº |
| | | if(task.Roadway=="SC02") return task; //妿æä»»å¡åç´æ¥ä¸åç»å åæº |
| | | if(task.Depth==1) return task; |
| | | //2æ·±ä½è¿è¡å¤ææ¯å¦è¦ç§»åº |
| | | |
| | | Dt_Task dt_Task = _taskService.RequestWMSTaskMovelibrary(task); |
| | | if (dt_Task != null) return dt_Task; |
| | | } |
| | | else |
| | | { |
| | |
| | | { |
| | | if (OutTaskStationIsOccupied(item) != null) |
| | | { |
| | | if(item.Roadway== "SC01") |
| | | if (item.Roadway == "SC01") |
| | | { |
| | | if (item.Depth == 1) return item; |
| | | //è°åWMSæ¥å£è¿è¡å¤ææ¯å¦éè¦è¿è¡ç§»åº |
| | | Dt_Task dt_Task= OutTaskMovelibrary(item); |
| | | Dt_Task dt_Task = OutTaskMovelibrary(item); |
| | | if (dt_Task != null) return dt_Task; |
| | | |
| | | } |
| | |
| | | string SourceAddress = string.Join("-", targetCodes); //ç»è£
æµ
åºä½å°å |
| | | Dt_Task? tasks = _taskService.QueryStationIsOccupiedOutTasks(task.Roadway, SourceAddress); //æ¾æµ
åºä½æ¯å¦æä»»å¡ |
| | | if (tasks != null) return tasks; |
| | | //åwmsç³è¯·å¤ææµ
åºä½æ¯å¦æè´§ï¼æ¯å¦éè¦è¿è¡ç§»åº |
| | | //åwmsç³è¯·å¤ææµ
åºä½æ¯å¦æè´§ï¼æ¯å¦éè¦è¿è¡ç§»åº |
| | | Dt_Task? taskst = _taskService.RequestWMSTaskMovelibrary(task); |
| | | if (taskst != null) return taskst; |
| | | return null; |
| | |
| | | /// <returns>妿æªè¢«å ç¨ï¼è¿åä¼ å
¥çä»»å¡ä¿¡æ¯ï¼å¦åï¼è¿ånull</returns> |
| | | private Dt_Task? OutTaskStationIsOccupied([NotNull] Dt_Task task) |
| | | { |
| | | Dt_Router? router = _routerService.QueryNextRoutes(task.Roadway, task.NextAddress).FirstOrDefault(); |
| | | if (router != null) |
| | | try |
| | | { |
| | | IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == router.ChildPosiDeviceCode); |
| | | IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "CL01"); |
| | | if (device != null) |
| | | { |
| | | CommonConveyorLine conveyorLine = (CommonConveyorLine)device; |
| | | if (conveyorLine.IsOccupied(router.ChildPosi))//åºåºç«å°æªè¢«å ç¨ |
| | | OtherDevice conveyorLine = (OtherDevice)device; |
| | | DeviceProDTO? deviceProDTO = conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == task.NextAddress && x.DeviceProParamName == "IsOccupied"); //æ ¹æ®å åæºå°åï¼å°ååç§°æ¾åè®® |
| | | if (deviceProDTO != null) |
| | | { |
| | | return task; |
| | | bool B_Event_Test = conveyorLine.Communicator.Read<bool>(deviceProDTO.DeviceProAddress); //夿è¾é线æ¯å¦å
许æ¾è´§ä¿¡å· |
| | | if (!B_Event_Test) |
| | | { |
| | | return task; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"æªæ¾å°åºåºç«å°ã{router.ChildPosiDeviceCode}ã对åºçéè®¯å¯¹è±¡ï¼æ æ³å¤æåºåºç«å°æ¯å¦è¢«å ç¨"); |
| | | } |
| | | } |
| | | else |
| | | catch (Exception ex) |
| | | { |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"æªæ¾å°ç«å°ã{task.NextAddress}ãä¿¡æ¯ï¼æ æ³æ ¡éªç«å°"); |
| | | |
| | | throw; |
| | | } |
| | | return null; |
| | | } |
| | |
| | | stackerCraneTaskCommand.TaskNum = task.TaskNum; |
| | | stackerCraneTaskCommand.WorkType = 1; |
| | | stackerCraneTaskCommand.TrayType = 1; |
| | | if (task.TaskType==(int)TaskInboundTypeEnum.Inbound)//夿æ¯å¦æ¯å
¥åºä»»å¡ |
| | | if (task.TaskType == (int)TaskInboundTypeEnum.Inbound)//夿æ¯å¦æ¯å
¥åºä»»å¡ |
| | | { |
| | | |
| | | Dt_StationManger dt_StationManger=_stationMangerRepository.QueryFirst(x=>x.StationCode==task.SourceAddress); |
| | | Dt_StationManger dt_StationManger = _stationMangerRepository.QueryFirst(x => x.StationCode == task.SourceAddress); |
| | | |
| | | |
| | | string[] startCodes = dt_StationManger.StackerCraneStationCode.Split("-"); |