| | |
| | | using SqlSugar; |
| | | using WIDESEA_Common.CustomModels; |
| | | using WIDESEA_Core.Const; |
| | | using WIDESEA_DTO; |
| | | using WIDESEA_DTO.MOM; |
| | | using WIDESEA_DTO.WMS; |
| | | using WIDESEA_Model.Models; |
| | |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | LogFactory.GetLog($"包装请求出库任务").Info(true, $"【请求参数】:【{JsonConvert.SerializeObject(json)}】{Environment.NewLine}{Environment.NewLine}"); |
| | | 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 outBoundMateriel = AppSettings.app<OutBoundMateriel>("OutBoundMateriel"); |
| | | 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; |
| | | //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; |
| | | |
| | | #region |
| | | #region Redis缓存查询代码 |
| | | //// 从缓存中获取库存信息 |
| | | //IDictionary<string, DtStockInfo>? stockInfos = _simpleCacheService.HashGetAll<DtStockInfo>(WIDESEA_Cache.CacheConst.Cache_DtStockInfo); |
| | | //List<DtStockInfo> stockInfoList = stockInfos.Values.ToList(); |
| | |
| | | // .WhereIF(!materielCodes.IsNullOrEmpty(), x => x.StockInfoDetails != null && x.StockInfoDetails.Any(y => materielCodes.Contains(y.MaterielCode))) |
| | | // .FirstOrDefault(); |
| | | // 修改后的查询代码 |
| | | #endregion |
| | | |
| | | //var stockInfo = await _stockInfoRepository.Db.Queryable<DtStockInfo>() |
| | | // .Includes(x => x.LocationInfo) |
| | | // .Includes(x => x.StockInfoDetails) |
| | |
| | | // .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>() |
| | |
| | | foreach (var stock in stockInfoList) |
| | | { |
| | | var hasMatchingDetail = await _stockInfoRepository.Db.Queryable<DtStockInfoDetail>() |
| | | .Where(d => d.StockId == stock.Id && materielCodes.Contains(d.MaterielCode)) |
| | | .Where(d => d.StockId == stock.Id && respone.PreProductNo.Contains(d.MaterielCode)) |
| | | .AnyAsync(); |
| | | |
| | | if (hasMatchingDetail) |
| | |
| | | break; |
| | | } |
| | | } |
| | | if (stockInfo == null) throw new Exception($"库内{station.productLine}无满足条件的库存可出库"); |
| | | if (stockInfo == null) throw new Exception($"CWSC3库内【{station.productLine}】,【物料编码{respone.PreProductNo}】无满足条件的库存可出库"); |
| | | |
| | | DtLocationInfo locationInfo = _locationRepository.QueryFirst(x => x.AreaId == 5 && x.LocationCode == stockInfo.LocationCode); |
| | | |
| | |
| | | |
| | | _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(stockInfo.LocationInfo, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery, task.TaskNum); |
| | | |
| | | LogFactory.GetLog($"包装请求出库任务").Info(true, $"【返回参数】:【{JsonConvert.SerializeObject(taskDTO)}】{Environment.NewLine}{Environment.NewLine}"); |
| | | return content.OK(data: taskDTO); |
| | | } |
| | | catch (Exception ex) |