| | |
| | | using WIDESEAWCS_SignalR; |
| | | using WIDESEAWCS_Tasks.ConveyorLineJob; |
| | | using WIDESEAWCS_Tasks.StackerCraneJob; |
| | | using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database; |
| | | using ICacheService = WIDESEAWCS_Core.Caches.ICacheService; |
| | | |
| | | namespace WIDESEAWCS_Tasks |
| | |
| | | |
| | | foreach (var station in stationManagers) |
| | | { |
| | | ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(station.stationChildCode); |
| | | var request = conveyorLine.GetValue<ConveyorLineDBName, byte>(ConveyorLineDBName.EntApply, station.stationChildCode); |
| | | |
| | | DeviceProtocolDetailDTO? deviceProtocolDetails = conveyorLine.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == station.stationChildCode && x.ProtocalDetailValue == command.RequestTask.ToString()); |
| | | |
| | | //x.DeviceProParamName == nameof(ConveyorLineTaskCommand.ConveyorLineSingal) |
| | | DeviceProtocolDetailDTO? deviceProtocolDetails = conveyorLine.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == station.stationChildCode && x.ProtocalDetailValue == request.ToString()); |
| | | |
| | | if (deviceProtocolDetails != null) |
| | | { |
| | | MethodInfo? method = GetType().GetMethod(deviceProtocolDetails.ProtocolDetailType); |
| | | if (method != null) |
| | | { |
| | | method.Invoke(this, new object[] { conveyorLine, command, station }); |
| | | method.Invoke(this, new object[] { conveyorLine, conveyorLine, station }); |
| | | } |
| | | } |
| | | |
| | | //ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(station.stationChildCode); |
| | | //command.PVI.Replace("/0", "").Replace("\"\\u0010\\u000f", ""); |
| | | //command.CarColor.Replace("/0", ""); |
| | | //command.CarType.Replace("/0", ""); |
| | | //command.CarCate.Replace("/0", ""); |
| | | //command.CatSkyWindow.Replace("/0", ""); |
| | | |
| | | //DeviceProtocolDetailDTO? deviceProtocolDetails = conveyorLine.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == station.stationChildCode && x.ProtocalDetailValue == command.Request.ToString()); |
| | | |
| | | ////x.DeviceProParamName == nameof(ConveyorLineTaskCommand.ConveyorLineSingal) |
| | | //if (deviceProtocolDetails != null) |
| | | //{ |
| | | // MethodInfo? method = GetType().GetMethod(deviceProtocolDetails.ProtocolDetailType); |
| | | // if (method != null) |
| | | // { |
| | | // method.Invoke(this, new object[] { conveyorLine, command, station }); |
| | | // } |
| | | //} |
| | | #region è°ç¨äºä»¶æ»çº¿éç¥å端 |
| | | |
| | | //var tokenInfos = _cacheService.Get<List<UserInfo>>("Cache_UserToken"); |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è¾é线请æ±åé
è·¯å¾ |
| | | /// è¾é线请æ±å
¥åº |
| | | /// </summary> |
| | | /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> |
| | | /// <param name="command">读åç请æ±ä¿¡æ¯</param> |
| | | /// <param name="childDeviceCode">å设å¤ç¼å·</param> |
| | | public void RequestInboundFlow(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager stationInfo) |
| | | public void RequestReceviceCar(CommonConveyorLine conveyorLine, CommonConveyorLine conveyorLine2, Dt_StationManager stationInfo) |
| | | { |
| | | var log = $"ã{conveyorLine.DeviceName}ã,æçå·ï¼ã{stationInfo.stationChildCode}ã,ç«å°ï¼ã{stationInfo.remark}ãè¯·æ±æµå"; |
| | | var log = $"ã{conveyorLine.DeviceName}ã,æçå·ï¼ã{stationInfo.stationChildCode}ã,ç«å°ï¼ã{stationInfo.remark}ã请æ±ä»»å¡"; |
| | | ConsoleHelper.WriteSuccessLine(log); |
| | | |
| | | //_noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" }); |
| | | WriteInfo(conveyorLine.DeviceName, log); |
| | | //if() |
| | | |
| | | var taskNew = _taskService.QueryConveyorLineTask(command.Barcode, stationInfo.stationChildCode); |
| | | var palletcode = conveyorLine2.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.SkidNo, stationInfo.stationChildCode); |
| | | var taskNew = _taskService.QueryConveyorLineTask(palletcode, stationInfo.stationChildCode); |
| | | if (taskNew == null) |
| | | { |
| | | if (_taskService.RequestTask(command.Barcode, stationInfo).Result.Status) |
| | | if (_taskService.RequestTask(palletcode, stationInfo).Result.Status) |
| | | { |
| | | Dt_Task task = _taskService.QueryConveyorLineTask(command.Barcode, stationInfo.stationChildCode); |
| | | Dt_Task task = _taskService.QueryConveyorLineTask(palletcode, stationInfo.stationChildCode); |
| | | if (task != null) |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode); |
| | | //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode); |
| | | |
| | | //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode); |
| | | //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode); |
| | | |
| | | _taskService.UpdateTaskStatusToNext(task); |
| | | } |
| | |
| | | else |
| | | { |
| | | //妿任å¡è¯·æ±å¤±è´¥ |
| | | conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode); |
| | | //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName.Barcode, taskNew.PalletCode, stationInfo.stationChildCode); |
| | | |
| | | conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taskNew.NextAddress, stationInfo.stationChildCode); |
| | | //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taskNew.NextAddress, stationInfo.stationChildCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode); |
| | | |
| | | _taskService.UpdateTaskStatusToNext(taskNew); |
| | | } |
| | | } |
| | | |
| | |
| | | WriteInfo(conveyorLine.DeviceName, log); |
| | | //if() |
| | | |
| | | var taskNew = _taskService.QueryConveyorLineTask(command.Barcode, stationInfo.stationChildCode); |
| | | var taskNew = _taskService.QueryConveyorLineTask(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo.stationChildCode); |
| | | if (taskNew == null) |
| | | { |
| | | if (_taskService.RequestTask(command.Barcode, stationInfo).Result.Status) |
| | | if (_taskService.RequestTask(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo).Result.Status) |
| | | { |
| | | Dt_Task task = _taskService.QueryConveyorLineTask(command.Barcode, stationInfo.stationChildCode); |
| | | Dt_Task task = _taskService.QueryConveyorLineTask(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo.stationChildCode); |
| | | if (task != null) |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode); |
| | | //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode); |
| | | |
| | | //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode); |
| | | //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode); |
| | | |
| | | _taskService.UpdateTaskStatusToNext(task); |
| | | } |
| | |
| | | else |
| | | { |
| | | //妿任å¡è¯·æ±å¤±è´¥ |
| | | conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode); |
| | | //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName.Barcode, taskNew.PalletCode, stationInfo.stationChildCode); |
| | | |
| | | if ((taskNew.TargetAddress == "2042" || taskNew.TargetAddress == "2032") && taskNew.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taskNew.TargetAddress, stationInfo.stationChildCode); |
| | | } |
| | | else |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taskNew.NextAddress, stationInfo.stationChildCode); |
| | | } |
| | | //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taskNew.NextAddress, stationInfo.stationChildCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode); |
| | | |
| | | _taskService.UpdateTaskStatusToNext(taskNew); |
| | | } |
| | | } |
| | | |
| | |
| | | public void ConveyorLineInFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager stationInfo) |
| | | { |
| | | //string clinfo = conveyorLine.ReadValue(ConveyorLineDBName.Barcode, stationInfo.stationChildCode).ToString(); |
| | | var task = _taskService.QueryExecutingTaskByBarcode(command.Barcode, stationInfo.stationChildCode); |
| | | var task = _taskService.QueryExecutingTaskByBarcode(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo.stationChildCode); |
| | | if (task != null && task.TaskState != (int)TaskInStatusEnum.Line_InFinish) |
| | | { |
| | | //ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); |
| | |
| | | ConsoleHelper.WriteErrorLine($"{stationInfo.stationChildCode}ç«å°è¯·æ±ååºä¿¡æ¯:{content.ToJsonString()}"); |
| | | if (content.Status) |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode); |
| | | //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode); |
| | | } |
| | | else |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode); |
| | | //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode); |
| | | } |
| | | } |
| | | } |
| | |
| | | var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceName, stationInfo.stationChildCode); |
| | | if (task != null) |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName.Barcode, task.PalletCode, stationInfo.stationChildCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.TargetAddress, stationInfo.stationChildCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName.SkidNo, task.PalletCode, stationInfo.stationChildCode); |
| | | //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.TargetAddress, stationInfo.stationChildCode); |
| | | //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode); |
| | | |
| | | //ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); |
| | | _taskService.UpdateTaskStatusToNext(task); |
| | | |
| | | if (task.TargetAddress == "2009" && task.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting) |
| | | { |
| | | _taskService.UpdateTaskStatusToNext(task); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | /// <param name="ProtocalDetailValue">线ä½å½åbool读ååç§»å°å</param> |
| | | public void ConveyorLineOutFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager stationInfo) |
| | | { |
| | | var task = _taskService.QueryExecutingTaskByBarcode(command.Barcode, stationInfo.stationChildCode); |
| | | var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceName, stationInfo.stationChildCode); |
| | | if (task != null) |
| | | { |
| | | if (task.TargetAddress == "2032" || task.TargetAddress == "2042") |
| | | { |
| | | bool k2 = conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.TargetAddress, stationInfo.stationChildCode); |
| | | bool k3 = conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode); |
| | | WebResponseContent k4 = _taskService.UpdateTaskStatusToNext(task); |
| | | } |
| | | else |
| | | { |
| | | WebResponseContent content = _taskService.RequestWheelsFlow(task.PalletCode).Result; |
| | | if (content.Status) |
| | | { |
| | | string taraddress = content.Data.ToString(); // "2032";SourceAddress |
| | | |
| | | bool k2 = conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.TargetAddress, stationInfo.stationChildCode); |
| | | bool k3 = conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode); |
| | | WebResponseContent k4 = _taskService.UpdateTaskStatusToNext(task); |
| | | } |
| | | else |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode); |
| | | |
| | | Console.Out.WriteLine($"读åå°è¾é线ç³è¯·,ç³è¯·æ¡ç ï¼{command.Barcode}ï¼åWMSç³è¯·å»å失败ï¼åå ï¼{content.Message},åå
¥ç³è¯ä¿¡æ
éï¼2"); |
| | | } |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | |
| | | string taraddresspos = _taskService.RequestWheletHty(command.Barcode); |
| | | if (taraddresspos != null) |
| | | var canTask = _taskRepository.QueryData(x => true).OrderByDescending(x => x.Grade).ThenBy(x => x.CreateDate).FirstOrDefault(); |
| | | if (null != canTask && task.PalletCode == canTask.PalletCode) |
| | | { |
| | | |
| | | bool k2 = conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taraddresspos, stationInfo.stationChildCode); |
| | | bool k3 = conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode); |
| | | //WebResponseContent k4 = _taskService.UpdateTaskStatusToNext(task); |
| | | |
| | | } |
| | | else |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode); |
| | | Console.Out.WriteLine($"读åå°è¾é线ç³è¯·,ç³è¯·æ¡ç ï¼{command.Barcode}ï¼æªæ¾å°ä»»å¡ï¼ç³è¯·ä¸ä¸å°å为ï¼{stationInfo.stationChildCode},åå
¥ç³è¯ä¿¡æ
éï¼2"); |
| | | //command.PalletCode = (Int32)20; |
| | | //command.PVI = "ABCD0123456789"; |
| | | //command.CarCate = "SUV"; |
| | | //command.CarColor = "AB01"; |
| | | |
| | | conveyorLine.SetValue(ConveyorLineDBName.SkidNo, 20, stationInfo.stationChildCode); |
| | | |
| | | conveyorLine.SetValue(ConveyorLineDBName.PVI, "ABCD", stationInfo.stationChildCode); |
| | | |
| | | //conveyorLine.SendCommand<ConveyorLineTaskCommand>(command, stationInfo.stationChildCode); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è¾é线请æ±å
¥åº |
| | | /// </summary> |
| | | /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> |
| | | /// <param name="command">读åç请æ±ä¿¡æ¯</param> |
| | | /// <param name="childDeviceCode">å设å¤ç¼å·</param> |
| | | //public void RequestInbound(CommonConveyorLine_After conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode) |
| | | //{ |
| | | // var stationInfo = _stationManagerService.GetStationInfoByChildCode(childDeviceCode); |
| | | // if (stationInfo != null) |
| | | // { |
| | | // //_taskService.r |
| | | // } |
| | | // var taskNew = _taskService.QueryCraneConveyorLineTask(command.ConveyorLineTaskNum.ObjToInt(), childDeviceCode); |
| | | // if (taskNew == null) |
| | | // { |
| | | // string barcode = command.ConveyorLineBarcode.TrimEnd(); |
| | | // if (_taskService.RequestWMSTask(command.ConveyorLineBarcode, childDeviceCode).Result.Status) |
| | | // { |
| | | // Dt_Task task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode); |
| | | // if (task != null) |
| | | // { |
| | | // ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(task); |
| | | // //taskCommand.InteractiveSignal = command.InteractiveSignal; |
| | | // taskCommand.ResponState = 1; |
| | | // taskCommand.ConveyorLineTaskNum = task.TaskNum; |
| | | // taskCommand.ConveyorLineTargetAddress = Convert.ToInt16(task.NextAddress); |
| | | // conveyorLine.SendCommand(taskCommand, childDeviceCode); |
| | | |
| | | // //ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); |
| | | |
| | | // _taskService.UpdateTaskStatusToNext(task); |
| | | // } |
| | | // } |
| | | // } |
| | | //} |
| | | } |
| | | } |