| | |
| | | } |
| | | |
| | | #region 调用事件总线通知前端 |
| | | var tokenInfos = _cacheService.Get<List<UserInfo>>("Cache_UserToken"); |
| | | if (tokenInfos == null || !tokenInfos.Any()) |
| | | { |
| | | //throw new Exception(conveyorLine.DeviceName + "缓存中未找到Token缓存"); |
| | | continue; |
| | | } |
| | | var userTokenIds = tokenInfos?.Select(x => x.Token_ID).ToList(); |
| | | var userIds = tokenInfos?.Select(x => x.UserId).ToList(); |
| | | //var tokenInfos = _cacheService.Get<List<UserInfo>>("Cache_UserToken"); |
| | | //if (tokenInfos == null || !tokenInfos.Any()) |
| | | //{ |
| | | // //throw new Exception(conveyorLine.DeviceName + "缓存中未找到Token缓存"); |
| | | // continue; |
| | | //} |
| | | //var userTokenIds = tokenInfos?.Select(x => x.Token_ID).ToList(); |
| | | //var userIds = tokenInfos?.Select(x => x.UserId).ToList(); |
| | | |
| | | object obj = new |
| | | { |
| | | station.stationChildCode, |
| | | commandAfter = command, |
| | | }; |
| | | _noticeService.StackerData(userIds?.FirstOrDefault(), userTokenIds, new { conveyorLine.DeviceName, data = obj }); |
| | | //object obj = new |
| | | //{ |
| | | // station.stationChildCode, |
| | | // commandAfter = command, |
| | | //}; |
| | | //_noticeService.StackerData(userIds?.FirstOrDefault(), userTokenIds, new { conveyorLine.DeviceName, data = obj }); |
| | | |
| | | #endregion 调用事件总线通知前端 |
| | | } |
| | |
| | | // command.ConveyorLineBarcode = taskGW.PalletCode; |
| | | //} |
| | | //} |
| | | //如高温出库后任务标记NG异常则将任务更新为异常排出任务 |
| | | Dt_Task NGtask = _taskRepository.QueryFirst(x => x.Remark == "NG" && x.Roadway == stationManager.Roadway && x.Roadway.Contains("GW")); |
| | | if (NGtask != null) |
| | | { |
| | | CreateAbNormalOutbound(conveyorLine, command, childDeviceCode, NGtask); |
| | | break; |
| | | } |
| | | //如高温出库后任务标记NG异常则将任务更新为异常排出任务 --冠宇取消超时检测后 托盘超时不在出库至异常口 |
| | | //Dt_Task NGtask = _taskRepository.QueryFirst(x => x.Remark == "NG" && x.Roadway == stationManager.Roadway && x.Roadway.Contains("GW")); |
| | | //if (NGtask != null) |
| | | //{ |
| | | // CreateAbNormalOutbound(conveyorLine, command, childDeviceCode, NGtask); |
| | | // break; |
| | | //} |
| | | |
| | | RequestWmsTask(conveyorLine, command, childDeviceCode); |
| | | break; |
| | |
| | | { |
| | | Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == childDeviceCode && x.stationPLC == conveyorLine.DeviceCode); |
| | | |
| | | if (command.ConveyorLineBarcode.IsNullOrEmpty()) |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 2, childDeviceCode); |
| | | return; |
| | | } |
| | | |
| | | |
| | | if( conveyorLine.ReadValue(ConveyorLineDBName_After.InteractiveSignal, childDeviceCode).ObjToInt() == 0) //托盘正反信号 |
| | | { |
| | | |
| | | }; |
| | | |
| | | conveyorLine.ReadValue(ConveyorLineDBName_After.InteractiveSignal, childDeviceCode); //托盘有无电芯信号 |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | |
| | | { |
| | | var taskNum = commonStackerCrane.GetValue<StackerCraneDBName, int>(StackerCraneDBName.TaskNum); |
| | | //var taskBarCode = commonStackerCrane.GetValue<StackerCraneDBName, string>(StackerCraneDBName.Barcode); |
| | | ConsoleHelper.WriteColorLine($"【{commonStackerCrane.DeviceName}】堆垛机任务号:【{taskNum}】任务任务号:【{task.TaskNum}", ConsoleColor.DarkBlue); |
| | | ConsoleHelper.WriteColorLine($"【{commonStackerCrane.DeviceName}】堆垛机任务号:【{taskNum}】任务任务号:【{task.TaskNum}】", ConsoleColor.DarkBlue); |
| | | if (taskNum == 0) |
| | | { |
| | | ConsoleHelper.WriteColorLine($"【{commonStackerCrane.DeviceName}】任务号为【{0}】,托盘号不一致可以下发任务", ConsoleColor.DarkBlue); |
| | | ConsoleHelper.WriteColorLine($"【{commonStackerCrane.DeviceName}】任务号为【{0}】,任务号不一致可以下发任务", ConsoleColor.DarkBlue); |
| | | bool sendFlag = commonStackerCrane.SendCommand(stackerCraneTaskCommand); |
| | | if (sendFlag) |
| | | { |
| | |
| | | /// </summary> |
| | | public enum StationManager |
| | | { |
| | | /// <summary> |
| | | /// 入库口 |
| | | /// </summary> |
| | | Inbound = 1, |
| | | |
| | | /// <summary> |
| | | /// 出库口 |
| | | /// </summary> |
| | | Outbound, |
| | | AbnormalStation, //分容出库段(异常排出口) |
| | | NGTakeStation, |
| | | |
| | | /// <summary> |
| | | /// 分容出库段(异常排出口) |
| | | /// </summary> |
| | | AbnormalOutStation, //分容出库段(异常排出口) |
| | | |
| | | /// <summary> |
| | | /// NG工站放料口 |
| | | /// </summary> |
| | | NGPutStation, |
| | | |
| | | /// <summary> |
| | | /// NG工站取料口 |
| | | /// </summary> |
| | | NGTakeStation, |
| | | |
| | | /// <summary> |
| | | /// 空框入库口 |
| | | /// </summary> |
| | | EmptyInbound, |
| | | |
| | | /// <summary> |
| | | /// 空框出库口 |
| | | /// </summary> |
| | | EmptyOutbound, |
| | | |
| | | |
| | |
| | | public string TrayBarcode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 上传类型 1- OCV入站前调用 2- OCV出站后调用 3-? 4-普通出入库调用 |
| | | /// 上传类型 1- OCV入站前调用 2- OCV出站后调用 3-? 4-普通出入库调用 (如空框入库则返回为:查询无电芯) |
| | | /// </summary> |
| | | public string SceneType { get; set; } = "4"; |
| | | } |
| | |
| | | |
| | | var stockInfo = _stockInfoRepository.Db.Queryable<DtStockInfo>() |
| | | .Includes(x => x.LocationInfo) // 预加载LocationInfo |
| | | .Includes(x => x.StockInfoDetails) // 预加载StockInfoDetails |
| | | .Where(x => x.AreaCode == "CWSC3" && x.IsFull == true) // 过滤条件 |
| | | .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock) // 过滤条件 |
| | | .OrderBy(x => x.OutboundTime) // 排序 |
| | |
| | | //content = JsonConvert.DeserializeObject<WebResponseContent>(abc); |
| | | //var num = content.Data.ObjToInt(); |
| | | |
| | | //如果当前库内存在比当前时间的对应产线的料 则入库至常温3 |
| | | DtStockInfo stockInfo = _stockInfoRepository.QueryFirst(x => x.AreaCode == "CWSC3" && x.IsFull == true && x.ProductionLine == input.ProductionLine && x.OutboundTime < DateTime.Now); |
| | | if (stockInfo != null) |
| | | { |
| | | var config = _configService.GetByConfigKey("SYS_InStacker", "CW3InStacker"); |
| | | var strings = config.ConfigValue.Split(',').ToList(); |
| | | // 入库送至常温3 |
| | | var resultContent = await CreateNewTask(input, strings); |
| | | if (resultContent.Status) |
| | | { |
| | | await _boxingInfoRepository.AddDataNavAsync(boxing); |
| | | } |
| | | return resultContent; |
| | | } |
| | | |
| | | // TODO 判断在途数量 |
| | | var count = BaseDal.QueryData(x => x.TargetAddress == stationManagers[0].Roadway).Count; |