1
huangxiaoqiang
2025-06-25 e08cf3df4a7f37cbb41f6f179fc8fc5d409e4ea3
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/AspNetCoreSchedule.cs
@@ -36,7 +36,7 @@
        public Task StartAsync(CancellationToken cancellationToken)
        {
            _timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromMinutes(20));
            _timer = new Timer(DoWork, null, TimeSpan.Zero, TimeSpan.FromMinutes(5));
            return Task.CompletedTask;
        }
@@ -48,14 +48,21 @@
                if (area == null) { return; }
                IDictionary<string, DtStockInfo>? stockInfos = _simpleCacheService.HashGetAll<DtStockInfo>(WIDESEA_Cache.CacheConst.Cache_DtStockInfo);
                List<DtStockInfo> stockInfoList = stockInfos.Values.ToList();
                //IDictionary<string, DtStockInfo>? stockInfos = _simpleCacheService.HashGetAll<DtStockInfo>(WIDESEA_Cache.CacheConst.Cache_DtStockInfo);
                //List<DtStockInfo> stockInfoList = stockInfos.Values.ToList();
                //var stockInfo = stockInfoList.Where(x => x.AreaCode == area.AreaCode && x.OutboundTime < DateTime.Now && x.IsFull == true) // 过滤条件
                //     .Where(x => x.LocationInfo != null && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID) // 过滤条件
                //     .OrderBy(x => x.OutboundTime) // 排序
                //     .ToList(); // 获取第一个元素
                var stockInfo = _stockInfoRepository.Db.Queryable<DtStockInfo>()
                    .Where(x => x.AreaCode == area.AreaCode && x.OutboundTime < DateTime.Now && x.IsFull == true)
                    .Includes(x => x.LocationInfo)
                    .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID) // 过滤条件
                    .Includes(x => x.StockInfoDetails)
                    .OrderBy(x => x.OutboundTime) // 排序
                    .ToList(); // 获取第一个元素
                var stockInfo = stockInfoList.Where(x => x.AreaCode == area.AreaCode && x.OutboundTime < DateTime.Now && x.IsFull == true) // 过滤条件
                     .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID) // 过滤条件
                     .OrderBy(x => x.OutboundTime) // 排序
                     .ToList(); // 获取第一个元素
                if (stockInfo.Count <= 0) return;
                foreach (var item in stockInfo)
@@ -94,6 +101,7 @@
                        _taskRepository.AddData(task);
                        // 更新库存位置状态为不可用
                        item.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable;
                        //_simpleCacheService.HashDel<DtStockInfo>(WIDESEA_Cache.CacheConst.Cache_DtStockInfo, new string[] { taskDTO.PalletCode });
                        _locationRepository.UpdateData(item.LocationInfo);
                    }
                }
@@ -140,7 +148,7 @@
                Creater = "System", // 修正拼写错误
                CreateDate = DateTime.Now,
                TaskId = 0,
                ProductionLine= stockInfo.ProductionLine,
                ProductionLine = stockInfo.ProductionLine,
                ProcessCode = stockInfo.ProcessCode,
            };
        }