|  |  | 
 |  |  |             Dt_StationManager station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == json.Position && x.stationType == 12 && x.stationArea == "Call"); | 
 |  |  |             if (station == null) { throw new Exception($"未找到包装站台信息,请检查传入参数{json.Position}"); } | 
 |  |  |  | 
 |  |  |             EqptRunDto basic = new EqptRunDto() | 
 |  |  |             { | 
 |  |  |                 EquipmentModel = "0", | 
 |  |  |                 Password = "", | 
 |  |  |                 EmployeeNo = "82412152", | 
 |  |  |                 SessionId = Guid.NewGuid().ToString(), | 
 |  |  |                 RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"), | 
 |  |  |                 Software = "包装上料", | 
 |  |  |                 EquipmentCode = station.stationEquipMOM, | 
 |  |  |             }; | 
 |  |  |             var result = _agingInOrOutInputService.Change(basic).Result; | 
 |  |  |             var respone = JsonConvert.DeserializeObject<EqptRunDTO>(result.Data.ToString()); | 
 |  |  |             if (!result.Status || !respone.Success) | 
 |  |  |             { | 
 |  |  |                 throw new Exception($"{station.productLine}获取MOM换型数据异常,异常信息{respone.MOMMessage}"); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             var deviceCode = SqlSugarHelper.DbWCS.Queryable<Dt_DeviceInfo>() | 
 |  |  |                 .Where(x => x.DeviceStatus == "1") | 
 |  |  |                 .Where(x => x.DeviceCode.Contains("CWSC")) // 过滤条件 | 
 |  |  |                 .ToList().Select(x => x.DeviceCode).ToList(); | 
 |  |  |  | 
 |  |  |             // 修改后的查询代码 | 
 |  |  |             var stockInfo = await _stockInfoRepository.Db.Queryable<DtStockInfo>() | 
 |  |  |                                 .Includes(x => x.LocationInfo) | 
 |  |  |                                 .Includes(x => x.StockInfoDetails) | 
 |  |  |                                 .Where(x => x.ProductionLine == station.productLine) | 
 |  |  |                                 .Where(x => x.AreaCode == "CWSC3" && x.IsFull == true) | 
 |  |  |                                 // 增加对 LocationInfo 的空值检查 | 
 |  |  |                                 .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock) | 
 |  |  |                                 // 增加对 LocationInfo 的空值检查 | 
 |  |  |                                 .WhereIF(!deviceCode.IsNullOrEmpty(), x => deviceCode.Contains(x.LocationInfo.RoadwayNo)) | 
 |  |  |                                 .OrderBy(x => x.OutboundTime) | 
 |  |  |                                 .FirstAsync(); | 
 |  |  |             #region 旧的查询代码 | 
 |  |  |             //var outBoundMateriel = _dt_ChangeoversRepository.QueryData(x => x.Status == "1").ToList(); | 
 |  |  |             //List<string>? materielCodes = outBoundMateriel.Count != 0 | 
 |  |  |             //    ? outBoundMateriel.Where(x => x.ProductionLine == station.productLine && x.ProcessCode == "CWSC3") | 
 |  |  |             //                      .Select(x => x.MaterielCode) | 
 |  |  |             //                      .ToList() | 
 |  |  |             //    : null; | 
 |  |  |  | 
 |  |  |             if (stockInfo.IsNullOrEmpty()) throw new Exception($"CWSC3库内{station.productLine}无满足条件的库存可出库"); | 
 |  |  |             // 修改后的查询代码 | 
 |  |  |             //var stockInfo = await _stockInfoRepository.Db.Queryable<DtStockInfo>() | 
 |  |  |             //                    .Includes(x => x.LocationInfo) | 
 |  |  |             //                    .Includes(x => x.StockInfoDetails) | 
 |  |  |             //                    .Where(x => x.ProductionLine == station.productLine) | 
 |  |  |             //                    .Where(x => x.AreaCode == "CWSC3" && x.IsFull == true) | 
 |  |  |             //                    // 增加对 LocationInfo 的空值检查 | 
 |  |  |             //                    .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock) | 
 |  |  |             //                    // 增加对 LocationInfo 的空值检查 | 
 |  |  |             //                    .WhereIF(!deviceCode.IsNullOrEmpty(), x => deviceCode.Contains(x.LocationInfo.RoadwayNo)) | 
 |  |  |             //                    .WhereIF(!materielCodes.IsNullOrEmpty(), x => x.StockInfoDetails.Any(y => materielCodes.Contains(y.MaterielCode))) | 
 |  |  |             //                    .OrderBy(x => x.OutboundTime) | 
 |  |  |             //                    .FirstAsync(); | 
 |  |  |             #endregion | 
 |  |  |  | 
 |  |  |             DtStockInfo stockInfo = null; | 
 |  |  |             var stockInfoList = await _stockInfoRepository.Db.Queryable<DtStockInfo>() | 
 |  |  |                 .Includes(x => x.LocationInfo) | 
 |  |  |                 .Where(x => x.ProductionLine == station.productLine | 
 |  |  |                         && x.AreaCode == "CWSC3" | 
 |  |  |                         && x.IsFull == true | 
 |  |  |                         && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock) | 
 |  |  |                 .WhereIF(!deviceCode.IsNullOrEmpty(), x => deviceCode.Contains(x.LocationInfo.RoadwayNo)) | 
 |  |  |                 .OrderBy(x => x.OutboundTime) | 
 |  |  |                 .ToListAsync(); | 
 |  |  |  | 
 |  |  |             foreach (var stock in stockInfoList) | 
 |  |  |             { | 
 |  |  |                 var hasMatchingDetail = await _stockInfoRepository.Db.Queryable<DtStockInfoDetail>() | 
 |  |  |                     .Where(d => d.StockId == stock.Id && respone.PreProductNo.Contains(d.MaterielCode)) | 
 |  |  |                     .AnyAsync(); | 
 |  |  |  | 
 |  |  |                 if (hasMatchingDetail) | 
 |  |  |                 { | 
 |  |  |                     stockInfo = stock; | 
 |  |  |                     break; | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             if (stockInfo.IsNullOrEmpty()) throw new Exception($"CWSC3库内【{station.productLine}】,【物料编码{respone.PreProductNo}】无满足条件的库存可出库"); | 
 |  |  |  | 
 |  |  |             DtLocationInfo locationInfo = _locationRepository.QueryFirst(x => x.AreaId == 5 && x.LocationCode == stockInfo.LocationCode); | 
 |  |  |  | 
 |  |  | 
 |  |  |         catch (Exception ex) | 
 |  |  |         { | 
 |  |  |             Console.WriteLine($"CW3至包装出库异常:{ex.ToString()}"); | 
 |  |  |  | 
 |  |  |             LogFactory.GetLog($"包装请求出库任务").Info(true, $"【异常】:【{ex.Message}】{Environment.NewLine}【{ex.StackTrace}】{Environment.NewLine}{Environment.NewLine}"); | 
 |  |  |  | 
 |  |  |             return content.Error($"失败:{ex.Message}"); | 
 |  |  |         } | 
 |  |  |     } |