| | |
| | | using System.Text; |
| | | using System.Text.RegularExpressions; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Common.Log; |
| | | using WIDESEAWCS_Common; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_Core; |
| | | using WIDESEAWCS_Core.Helper; |
| | | using WIDESEAWCS_DTO.StackerHandTask; |
| | | using WIDESEAWCS_DTO.TaskInfo; |
| | | using WIDESEAWCS_Model.BasicInfo; |
| | | using WIDESEAWCS_Model.Models; |
| | |
| | | |
| | | private async Task RequestTask(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, Dt_StationManager stationManager) |
| | | { |
| | | var hasTask = await _taskRepository.QueryFirstAsync(x => x.SourceAddress == childDeviceCode && x.TaskState < (int)TaskInStatusEnum.RGV_InExecutingFinish && x.TaskState >= (int)TaskInStatusEnum.InNew); |
| | | if (hasTask != null) |
| | | try |
| | | { |
| | | var log = $"ã{conveyorLine._deviceName}ãä»»å¡å·ï¼ã{hasTask.TaskNum}ã,æçæ¡ç ï¼ã{hasTask.PalletCode}ãå·²å°è¾¾ã{childDeviceCode}ãè¾é线åå¨ä»»å¡"; |
| | | var hasTask = await _taskRepository.QueryFirstAsync(x => x.SourceAddress == childDeviceCode && x.TaskState < (int)TaskInStatusEnum.RGV_InExecutingFinish && x.TaskState >= (int)TaskInStatusEnum.InNew); |
| | | if (hasTask != null) |
| | | { |
| | | var log = $"ã{conveyorLine._deviceName}ãä»»å¡å·ï¼ã{hasTask.TaskNum}ã,æçæ¡ç ï¼ã{hasTask.PalletCode}ãå·²å°è¾¾ã{childDeviceCode}ãè¾é线åå¨ä»»å¡"; |
| | | ConsoleHelper.WriteWarningLine(log); |
| | | |
| | | await _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" }); |
| | | WriteInfo(conveyorLine.DeviceName, log); |
| | | return; |
| | | } |
| | | var RGVName = string.Empty; |
| | | if (stationManager.stationFloor == "1F") |
| | | { |
| | | RGVName = stationManager.RGVName; |
| | | } |
| | | else |
| | | { |
| | | RGVName = "RGV03"; |
| | | } |
| | | Dt_Task task = new Dt_Task() |
| | | { |
| | | TaskNum = _taskRepository.GetTaskNo().Result, |
| | | TaskType = (int)TaskInboundTypeEnum.Inbound, |
| | | TaskState = (int)TaskInStatusEnum.InNew, |
| | | SourceAddress = childDeviceCode, |
| | | Dispatchertime = DateTime.Now, |
| | | Grade = 1, |
| | | Creater = "System", |
| | | Floor = stationManager.stationFloor, |
| | | RGVName = RGVName, |
| | | SourceStation = stationManager.remark, |
| | | TargetStation = 0, |
| | | }; |
| | | |
| | | _taskRepository.AddData(task); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | var log = $"ã{conveyorLine._deviceName}ãè¾é线ã{childDeviceCode}ãã{ex.Message}ã"; |
| | | ConsoleHelper.WriteWarningLine(log); |
| | | |
| | | await _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" }); |
| | | WriteInfo(conveyorLine.DeviceName, log); |
| | | return; |
| | | } |
| | | var RGVName = string.Empty; |
| | | if (stationManager.stationFloor == "1F") |
| | | { |
| | | RGVName = stationManager.RGVName; |
| | | } |
| | | else |
| | | { |
| | | RGVName = "RGV03"; |
| | | } |
| | | Dt_Task task = new Dt_Task() |
| | | { |
| | | TaskNum = _taskRepository.GetTaskNo().Result, |
| | | TaskType = (int)TaskInboundTypeEnum.Inbound, |
| | | TaskState = (int)TaskInStatusEnum.InNew, |
| | | SourceAddress = childDeviceCode, |
| | | Dispatchertime = DateTime.Now, |
| | | Grade = 1, |
| | | Creater = "System", |
| | | Floor = stationManager.stationFloor, |
| | | RGVName = RGVName, |
| | | SourceStation = stationManager.remark, |
| | | TargetStation = 0, |
| | | }; |
| | | |
| | | _taskRepository.AddData(task); |
| | | |
| | | } |
| | | private void RequestWMSTask(CommonConveyorLine conveyorLine, Dt_StationManager stationManager) |
| | | { |
| | | if (stationManager.stationChildCode == "3002") |
| | | { |
| | | |
| | | var newTask = _taskRepository.QueryFirst(x => x.TargetAddress == "3004"); |
| | | if (newTask != null) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | DeviceProDTO? devicePro = conveyorLine.DeviceProDTOs.Where(x => x.DeviceChildCode == stationManager.stationChildCode && x.DeviceProParamName == "ConveyorLineBarcode").FirstOrDefault(); |
| | | var x = conveyorLine.Communicator.Read(devicePro.DeviceProAddress,10); |
| | | var x = conveyorLine.Communicator.Read(devicePro.DeviceProAddress, 10); |
| | | |
| | | string Barcode = Encoding.UTF8.GetString(x); |
| | | |
| | | if (Barcode == null) |
| | | if (Barcode == null || Barcode==""|| Barcode.Trim().Contains("\0")) |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal, Convert.ToSByte(3), stationManager.stationChildCode); |
| | | } |
| | |
| | | } |
| | | var wmsIpAddress = wmsBase + requestTask; |
| | | var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, taskDTO.ToJsonString()).Result; |
| | | WriteLog.GetLog("WMSæ¥å£è¿åä¿¡æ¯").Write(JsonConvert.SerializeObject(result), "WMSæ¥å£è¿åä¿¡æ¯"); |
| | | } |
| | | } |
| | | else |
| | |
| | | var x = conveyorLine.Communicator.Read(devicePro.DeviceProAddress, 10); |
| | | |
| | | string Barcode = Encoding.UTF8.GetString(x); |
| | | if (Barcode == "") |
| | | |
| | | if (Barcode == null || Barcode == "" || Barcode.Trim().Contains("\0")) |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal, Convert.ToSByte(3), stationManager.stationChildCode); |
| | | } |
| | | var task = _taskRepository.QueryFirst(x => x.PalletCode == Barcode); |
| | | if (task != null) |
| | | { |
| | | |
| | | var log = $"ã{conveyorLine._deviceName}ãç«å°ã{stationManager.stationChildCode}ã请æ±åè´§ãå·²åå¨ä»»å¡ä»»å¡å·{task.TaskNum}"; |
| | | LogAndWarn(conveyorLine.DeviceName, log); |
| | | } |
| | | else |
| | | { |
| | | var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; |
| | | var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestTask)?.ConfigValue; |
| | | |
| | | |
| | | WMSTaskDTO taskDTO = new WMSTaskDTO() |
| | | { |
| | | TPbarcode = Barcode, |
| | |
| | | } |
| | | var wmsIpAddress = wmsBase + requestTask; |
| | | var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, taskDTO.ToJsonString()).Result; |
| | | WriteLog.GetLog("WMSæ¥å£è¿åä¿¡æ¯").Write(JsonConvert.SerializeObject(result), "WMSæ¥å£è¿åä¿¡æ¯"); |
| | | } |
| | | } |
| | | } |