| | |
| | | private ConveyorLineTaskCommand MapTaskCommand(Dt_Task task, ConveyorLineTaskCommand command) |
| | | { |
| | | // 使用正则表达式匹配类似 -数字 的模式,并替换为空字符串 |
| | | task.NextAddress = Regex.Replace(task.NextAddress, @"-(\d+)", ""); |
| | | if (Convert.ToInt32(task.NextAddress) > 1999) |
| | | { |
| | | task.NextAddress = (Convert.ToInt32(task.NextAddress) - 1000).ToString(); |
| | | } |
| | | //task.NextAddress = Regex.Replace(task.NextAddress, @"-(\d+)", ""); |
| | | //if (Convert.ToInt32(task.NextAddress) > 1999) |
| | | //{ |
| | | // task.NextAddress = (Convert.ToInt32(task.NextAddress) - 1000).ToString(); |
| | | //} |
| | | var comm = _mapper.Map<ConveyorLineTaskCommand>(task); |
| | | comm.InteractiveSignal = command.InteractiveSignal; |
| | | return comm; |
| | |
| | | var content = CreateAndSendTask(taskDTO); |
| | | if (content.Status) |
| | | { |
| | | var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode); |
| | | //var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode); |
| | | var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode, command.Barcode); |
| | | if (task != null) |
| | | { |
| | | var next = task.NextAddress; |
| | |
| | | /// </summary> |
| | | private async Task RequestWmsTask(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue, Dt_StationManager stationManager) |
| | | { |
| | | string isTrue = string.Empty; |
| | | |
| | | ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | | |
| | | ResultTrayCellsStatus result = GetResultTrayCellsStatus(command, stationManager); |
| | | |
| | | if (result.SerialNos.Count == 0) |
| | | if (childDeviceCode == "1435") |
| | | { |
| | | var Traycontent = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode); |
| | | if (Traycontent.Status) |
| | | { |
| | | ConsoleHelper.WriteSuccessLine("二封空框请求回流"); |
| | | ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | | } |
| | | } |
| | | ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | | |
| | | List<string> strings = stationManager.Roadway.Split(",").ToList(); |
| | | foreach (string item in strings) |
| | | { |
| | | isTrue = RequestInboundPlatform(item, result.ProductionLine, false); |
| | | if (isTrue != null) |
| | | var serialNosError = result.SerialNos.Where(x => x.SerialNoStatus != 1 && x.SerialNoStatus != 4).ToList(); |
| | | |
| | | if (serialNosError.Count > 0 || !result.Success || result.SerialNos.Count == 0) |
| | | { |
| | | break; |
| | | WMSTaskDTO taskDTO = new WMSTaskDTO |
| | | { |
| | | TaskNum = _taskRepository.GetTaskNo().Result, |
| | | Grade = 1, |
| | | PalletCode = command.Barcode, |
| | | RoadWay = "CHSC4", |
| | | SourceAddress = childDeviceCode, |
| | | TargetAddress = "CHSC4", |
| | | TaskState = (int)TaskInStatusEnum.InNew, |
| | | Id = 2, |
| | | TaskType = (int)TaskInboundTypeEnum.InNG, |
| | | ProductionLine = result.ProductionLine, |
| | | }; |
| | | var Taskcontent = _taskService.ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO }); |
| | | if (Taskcontent.Status) |
| | | { |
| | | ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | | } |
| | | ConsoleHelper.WriteSuccessLine($"【{stationManager.stationRemark}】【{stationManager.stationChildCode}】{result.MOMMessage}"); |
| | | return; |
| | | } |
| | | } |
| | | if (isTrue != null && isTrue != string.Empty) |
| | | { |
| | | WMSTaskDTO taskDTO = new WMSTaskDTO |
| | | else |
| | | { |
| | | TaskNum = _taskRepository.GetTaskNo().Result, |
| | | Grade = 1, |
| | | PalletCode = command.Barcode, |
| | | RoadWay = childDeviceCode, |
| | | SourceAddress = childDeviceCode, |
| | | TargetAddress = isTrue, |
| | | TaskState = (int)TaskOutStatusEnum.SC_OutFinish, |
| | | Id = 2, |
| | | TaskType = (int)TaskOutboundTypeEnum.OutTray, |
| | | ProductionLine = result.ProductionLine, |
| | | }; |
| | | var Taskcontent = _taskService.ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO }); |
| | | if (Taskcontent.Status) |
| | | { |
| | | ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | | var Taskcontent = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode); |
| | | if (Taskcontent.Status) |
| | | { |
| | | ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | | } |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | var Taskcontent = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode); |
| | | if (Taskcontent.Status) |
| | | string isTrue = string.Empty; |
| | | |
| | | ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | | |
| | | if (result.SerialNos.Count == 0) |
| | | { |
| | | ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | | var Traycontent = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode); |
| | | if (Traycontent.Status) |
| | | { |
| | | ConsoleHelper.WriteSuccessLine("二封空框请求回流"); |
| | | ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | | } |
| | | } |
| | | |
| | | List<string> strings = stationManager.Roadway.Split(",").ToList(); |
| | | foreach (string item in strings) |
| | | { |
| | | isTrue = RequestInboundPlatform(item, result.ProductionLine, false); |
| | | if (isTrue != null) |
| | | { |
| | | break; |
| | | } |
| | | } |
| | | if (isTrue != null && isTrue != string.Empty) |
| | | { |
| | | WMSTaskDTO taskDTO = new WMSTaskDTO |
| | | { |
| | | TaskNum = _taskRepository.GetTaskNo().Result, |
| | | Grade = 1, |
| | | PalletCode = command.Barcode, |
| | | RoadWay = childDeviceCode, |
| | | SourceAddress = childDeviceCode, |
| | | TargetAddress = isTrue, |
| | | TaskState = (int)TaskOutStatusEnum.SC_OutFinish, |
| | | Id = 2, |
| | | TaskType = (int)TaskOutboundTypeEnum.OutTray, |
| | | ProductionLine = result.ProductionLine, |
| | | }; |
| | | var Taskcontent = _taskService.ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO }); |
| | | if (Taskcontent.Status) |
| | | { |
| | | ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | var Taskcontent = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode); |
| | | if (Taskcontent.Status) |
| | | { |
| | | ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | try |
| | | { |
| | | StaticVariable.isLineRun = false; |
| | | |
| | | |
| | | if (StaticVariable.isStackerRun) |
| | | { |
| | | ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | |
| | | LogAndSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, logMessage, conveyorLineTaskCommand.TargetAddress.ToString()); |
| | | return; |
| | | } |
| | | var configz = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsbase = configz.Where(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE).FirstOrDefault()?.ConfigValue; |
| | | var address = configz.Where(x => x.ConfigKey == SysConfigKeyConst.QueryLocationFreeJZ).FirstOrDefault()?.ConfigValue; |
| | | if (wmsbase == null || address == null) |
| | | { |
| | | throw new InvalidOperationException("WMS IP 未配置"); |
| | | } |
| | | var wmsIpAddrss = wmsbase + address; |
| | | var x = await HttpHelper.PostAsync(wmsIpAddrss, new { RoadwayNo = "JZSC" }.ToJsonString()); |
| | | var LocationFree = JsonConvert.DeserializeObject<WebResponseContent>(x); |
| | | if (!LocationFree.Status) |
| | | { |
| | | ConsoleHelper.WriteErrorLine(LocationFree.Message); |
| | | return; |
| | | } |
| | | |
| | | if (resultTrayCellsStatus.SerialNos.Count == 0) |
| | | { |
| | | var Traycontent = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode); |
| | |
| | | } |
| | | else |
| | | { |
| | | var configz = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsbase = configz.Where(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE).FirstOrDefault()?.ConfigValue; |
| | | var address = configz.Where(x => x.ConfigKey == SysConfigKeyConst.QueryStockInfoForRealTrayJZAsync).FirstOrDefault()?.ConfigValue; |
| | | if (wmsbase == null || address == null) |
| | | |
| | | var QueryStockInfoForRealTrayJZ = configz.Where(x => x.ConfigKey == SysConfigKeyConst.QueryStockInfoForRealTrayJZAsync).FirstOrDefault()?.ConfigValue; |
| | | if (wmsbase == null || QueryStockInfoForRealTrayJZ == null) |
| | | { |
| | | throw new InvalidOperationException("WMS IP 未配置"); |
| | | } |
| | | var wmsIpAddrss = wmsbase + address; |
| | | wmsIpAddrss = wmsbase + QueryStockInfoForRealTrayJZ; |
| | | var result = await HttpHelper.PostAsync(wmsIpAddrss, new { ProductLine = resultTrayCellsStatus.ProductionLine, PalletCode = command.Barcode }.ToJsonString()); |
| | | var StockInfocontent = JsonConvert.DeserializeObject<WebResponseContent>(result); |
| | | if (StockInfocontent.Status) |
| | |
| | | { |
| | | ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | | } |
| | | #region |
| | | //if (task != null && task.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting && task.CurrentAddress == "1537") |
| | | //{ |
| | | // ConveyorLineTaskCommand command1 = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(stationManager.stationLocation); |
| | | |
| | | // if (command1.InteractiveSignal != 2) |
| | | // { |
| | | // ConsoleHelper.WriteSuccessLine("化成实托请求入静置"); |
| | | // if (StaticVariable.isStackerRun == true) |
| | | // { |
| | | // ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | | // } |
| | | // return; |
| | | // } |
| | | // else |
| | | // { |
| | | // ConsoleHelper.WriteWarningLine("出库任务未完成"); |
| | | // return; |
| | | // } |
| | | //} |
| | | //else if (task != null && task.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting) |
| | | //{ |
| | | // ConsoleHelper.WriteWarningLine("已存在静置出库任务"); |
| | | // return; |
| | | //} |
| | | //else |
| | | //{ |
| | | // var Task = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode); |
| | | // if (Task.Status) |
| | | // { |
| | | // if (StaticVariable.isStackerRun == true) |
| | | // { |
| | | // ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | | // } |
| | | // } |
| | | // return; |
| | | //} |
| | | #endregion |
| | | } |
| | | else |
| | | { |
| | |
| | | finally |
| | | { |
| | | StaticVariable.isLineRun = true; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | else if (task.Roadway.Contains("JZ")) |
| | | { |
| | | // 查询是否存在静置出库任务 |
| | | var outJZTask = _taskRepository.QueryData(x => x.Roadway == task.Roadway && |
| | | var outJZTask = _taskRepository.QueryData(x => x.Roadway == task.Roadway && task.TaskType == (int)TaskOutboundTypeEnum.Outbound && |
| | | (x.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting || |
| | | x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish || x.TaskState == (int)TaskOutStatusEnum.OutNew)); |
| | | |
| | |
| | | } |
| | | else |
| | | { |
| | | ConsoleHelper.WriteWarningLine("已存在静置出库任务,静置入库任务无法下发至线体"); |
| | | ConsoleHelper.WriteErrorLine("已存在静置出库任务,静置入库任务无法下发至线体"); |
| | | } |
| | | } |
| | | else |