| | |
| | | private readonly ICacheService _cacheService; |
| | | private readonly INoticeService _noticeService; |
| | | private readonly IDt_needBarcodeRepository _needBarcodeRepository; |
| | | private readonly IDt_StationManagerRepository _stationManagerRepository; |
| | | private static List<string>? userTokenIds; |
| | | private static List<int>? userIds; |
| | | |
| | | public CommonConveyorLineJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, IDt_StationManagerService stationManagerService, ISys_ConfigService sys_ConfigService, ICacheService cacheService, INoticeService noticeService, IDt_needBarcodeRepository needBarcodeRepository) |
| | | public CommonConveyorLineJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, IDt_StationManagerService stationManagerService, ISys_ConfigService sys_ConfigService, ICacheService cacheService, INoticeService noticeService, IDt_needBarcodeRepository needBarcodeRepository, IDt_StationManagerRepository stationManagerRepository) |
| | | { |
| | | _taskService = taskService; |
| | | _taskExecuteDetailService = taskExecuteDetailService; |
| | |
| | | _cacheService = cacheService; |
| | | _noticeService = noticeService; |
| | | _needBarcodeRepository = needBarcodeRepository; |
| | | _stationManagerRepository = stationManagerRepository; |
| | | } |
| | | |
| | | public async Task Execute(IJobExecutionContext context) |
| | |
| | | |
| | | foreach (var station in stationManagers) |
| | | { |
| | | var request = conveyorLine.GetValue<ConveyorLineDBName, byte>(ConveyorLineDBName.EntApply, station.stationChildCode); |
| | | |
| | | DeviceProtocolDetailDTO? deviceProtocolDetails = conveyorLine.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == station.stationChildCode && x.ProtocalDetailValue == request.ToString()); |
| | | |
| | | if (deviceProtocolDetails != null) |
| | | if (station.stationType == 8) //çè£
æ¥è½¦é»è¾å¤ç |
| | | { |
| | | MethodInfo? method = GetType().GetMethod(deviceProtocolDetails.ProtocolDetailType); |
| | | if (method != null) |
| | | var request = conveyorLine.GetValue<ConveyorLineDBName, bool>(ConveyorLineDBName.EntApply, station.stationChildCode); |
| | | if (request) |
| | | { |
| | | method.Invoke(this, new object[] { conveyorLine, conveyorLine, station }); |
| | | var palletcode = conveyorLine.GetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.SkidNo, station.stationChildCode); |
| | | var pvi = conveyorLine.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.PVI, station.stationChildCode); |
| | | |
| | | WebResponseContent response = _taskService.RequestWhiteBody(palletcode.ToString(), pvi, station).Result; |
| | | if (response.Status) |
| | | { |
| | | conveyorLine.SetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.AllowRelease, 1, station.stationChildCode); |
| | | } |
| | | } |
| | | } |
| | | if (station.stationType == 5) //çè£
æåæºé»è¾å¤ç |
| | | { |
| | | var request = conveyorLine.GetValue<ConveyorLineDBName, bool>(ConveyorLineDBName.EntApply, station.stationChildCode); |
| | | if (request) |
| | | { |
| | | var palletcode = conveyorLine.GetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.SkidNo, station.stationChildCode); |
| | | var pvi = conveyorLine.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.PVI, station.stationChildCode); |
| | | |
| | | WebResponseContent response = _taskService.RequestRoadWayTask(palletcode.ToString(), pvi, station).Result; |
| | | if (response.Status) |
| | | { |
| | | var task = _taskService.QueryBarCodeConveyorLineTask(palletcode.ToString(), station.stationChildCode); |
| | | if (task != null) |
| | | { |
| | | var stationInfo = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.NextAddress); |
| | | conveyorLine.SetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.Spare6, 3, station.stationChildCode); |
| | | Thread.Sleep(300); |
| | | conveyorLine.SetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.Spare5, Convert.ToInt16(stationInfo.stationTCLocation), station.stationChildCode); |
| | | conveyorLine.SetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.AllowRelease, 1, station.stationChildCode); |
| | | |
| | | _taskService.UpdateTaskStatusToNext(task); |
| | | } |
| | | } |
| | | } |
| | | //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.RequestInboundRoadWayNo)?.ConfigValue; |
| | | //if (wmsBase == null || requestTask == null) |
| | | //{ |
| | | // throw new InvalidOperationException("WMS IP æªé
ç½®"); |
| | | //} |
| | | //var wmsIpAddrss = wmsBase + requestTask; |
| | | |
| | | //var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = palletcode, Roadways = station.Roadway, area = station.stationArea, Position = station.stationChildCode, PVI = pvi }.ToJsonString()); |
| | | //WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result); |
| | | //if (!content.Status) |
| | | //{ |
| | | // return; |
| | | //} |
| | | |
| | | ////çæ¶æåæº ç´é人æ¶è£
-2 å
¥åº-3 |
| | | //conveyorLine.SetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.Spare6, 3, station.stationChildCode); |
| | | //conveyorLine.SetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.Spare5, 5, station.stationChildCode); |
| | | //conveyorLine.SetValue<ConveyorLineDBName, Int16>(ConveyorLineDBName.AllowRelease, 1, station.stationChildCode); |
| | | } |
| | | |
| | | //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, conveyorLine, station }); |
| | | // } |
| | | //} |
| | | |
| | | //ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(station.stationChildCode); |
| | | //command.PVI.Replace("/0", "").Replace("\"\\u0010\\u000f", ""); |
| | |
| | | return; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è¾é线请æ±å
¥åº |
| | | /// </summary> |
| | | /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> |
| | | /// <param name="command">读åç请æ±ä¿¡æ¯</param> |
| | | /// <param name="childDeviceCode">å设å¤ç¼å·</param> |
| | | public void RequestReceviceCar(CommonConveyorLine conveyorLine, CommonConveyorLine conveyorLine2, Dt_StationManager stationInfo) |
| | | { |
| | | var log = $"ã{conveyorLine.DeviceName}ã,æçå·ï¼ã{stationInfo.stationChildCode}ã,ç«å°ï¼ã{stationInfo.remark}ã请æ±ä»»å¡"; |
| | | ConsoleHelper.WriteSuccessLine(log); |
| | | ///// <summary> |
| | | ///// è¾é线请æ±å
¥åº |
| | | ///// </summary> |
| | | ///// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> |
| | | ///// <param name="command">读åç请æ±ä¿¡æ¯</param> |
| | | ///// <param name="childDeviceCode">å设å¤ç¼å·</param> |
| | | //public void RequestReceviceCar(CommonConveyorLine conveyorLine, CommonConveyorLine conveyorLine2, Dt_StationManager stationInfo) |
| | | //{ |
| | | // 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 palletcode = conveyorLine2.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.SkidNo, stationInfo.stationChildCode); |
| | | var taskNew = _taskService.QueryConveyorLineTask(palletcode, stationInfo.stationChildCode); |
| | | if (taskNew == null) |
| | | { |
| | | if (_taskService.RequestTask(palletcode, stationInfo).Result.Status) |
| | | { |
| | | Dt_Task task = _taskService.QueryConveyorLineTask(palletcode, stationInfo.stationChildCode); |
| | | if (task != null) |
| | | { |
| | | //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode); |
| | | // //_noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" }); |
| | | // WriteInfo(conveyorLine.DeviceName, log); |
| | | // //if() |
| | | // var palletcode = conveyorLine2.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.SkidNo, stationInfo.stationChildCode); |
| | | // var taskNew = _taskService.QueryConveyorLineTask(palletcode, stationInfo.stationChildCode); |
| | | // if (taskNew == null) |
| | | // { |
| | | // if (_taskService.RequestTask(palletcode, stationInfo).Result.Status) |
| | | // { |
| | | // 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.ResponState, 1, stationInfo.stationChildCode); |
| | | // //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode); |
| | | // //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode); |
| | | |
| | | _taskService.UpdateTaskStatusToNext(task); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | //妿任å¡è¯·æ±å¤±è´¥ |
| | | //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode); |
| | | } |
| | | } |
| | | } |
| | | // _taskService.UpdateTaskStatusToNext(task); |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // //妿任å¡è¯·æ±å¤±è´¥ |
| | | // //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode); |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | /// <summary> |
| | | /// è¾é线请æ±å
¥åº |
| | |
| | | /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> |
| | | /// <param name="command">读åç请æ±ä¿¡æ¯</param> |
| | | /// <param name="childDeviceCode">å设å¤ç¼å·</param> |
| | | public void RequestInbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager stationInfo) |
| | | { |
| | | var log = $"ã{conveyorLine.DeviceName}ã,æçå·ï¼ã{stationInfo.stationChildCode}ã,ç«å°ï¼ã{stationInfo.remark}ã请æ±ä»»å¡"; |
| | | ConsoleHelper.WriteSuccessLine(log); |
| | | //public void RequestInbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager stationInfo) |
| | | //{ |
| | | // 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() |
| | | // //_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.PalletCode.ToString().PadLeft(4, '0'), stationInfo.stationChildCode); |
| | | if (taskNew == null) |
| | | { |
| | | if (_taskService.RequestTask(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo).Result.Status) |
| | | { |
| | | Dt_Task task = _taskService.QueryConveyorLineTask(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo.stationChildCode); |
| | | if (task != null) |
| | | { |
| | | //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode); |
| | | // var taskNew = _taskService.QueryConveyorLineTask(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo.stationChildCode); |
| | | // if (taskNew == null) |
| | | // { |
| | | // if (_taskService.RequestTask(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo).Result.Status) |
| | | // { |
| | | // 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.ResponState, 1, stationInfo.stationChildCode); |
| | | // //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode); |
| | | // //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode); |
| | | |
| | | _taskService.UpdateTaskStatusToNext(task); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | //妿任å¡è¯·æ±å¤±è´¥ |
| | | //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode); |
| | | } |
| | | } |
| | | } |
| | | // _taskService.UpdateTaskStatusToNext(task); |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // //妿任å¡è¯·æ±å¤±è´¥ |
| | | // //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode); |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | /// <summary> |
| | | /// è¾é线å
¥åºå®æ |
| | |
| | | /// <param name="conveyorLine"></param> |
| | | /// <param name="command"></param> |
| | | /// <param name="stationInfo"></param> |
| | | public void ConveyorLineInFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager stationInfo) |
| | | { |
| | | //string clinfo = conveyorLine.ReadValue(ConveyorLineDBName.Barcode, stationInfo.stationChildCode).ToString(); |
| | | 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); |
| | | //public void ConveyorLineInFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager stationInfo) |
| | | //{ |
| | | // //string clinfo = conveyorLine.ReadValue(ConveyorLineDBName.Barcode, stationInfo.stationChildCode).ToString(); |
| | | // 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); |
| | | |
| | | WebResponseContent content = _taskService.UpdateTaskStatusToNext(task); |
| | | ConsoleHelper.WriteErrorLine($"{stationInfo.stationChildCode}ç«å°è¯·æ±ååºä¿¡æ¯:{content.ToJsonString()}"); |
| | | if (content.Status) |
| | | { |
| | | //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode); |
| | | } |
| | | else |
| | | { |
| | | //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode); |
| | | } |
| | | } |
| | | } |
| | | // WebResponseContent content = _taskService.UpdateTaskStatusToNext(task); |
| | | // ConsoleHelper.WriteErrorLine($"{stationInfo.stationChildCode}ç«å°è¯·æ±ååºä¿¡æ¯:{content.ToJsonString()}"); |
| | | // if (content.Status) |
| | | // { |
| | | // //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode); |
| | | // } |
| | | // else |
| | | // { |
| | | // //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode); |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | /// <summary> |
| | | /// è¾é线请æ±åºä¿¡æ¯ |