using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WCS.BLL.DbModels; using WCS.DAL.Db; using WCS.DAL.DbModels; namespace WCS.BLL.Manager { /// /// 数据处理 /// public static class DataProcessManager { public static object flag = new object(); public static void UpdateShelfStatus() { Task.Run(() => { lock (flag) { var shelfIds = DbHelp.db.Queryable() .Select(t => t.ShelfId) .Distinct() .ToList(); var shelfInfos = DbHelp.db.Queryable().ToList(); var notEmptyToEmpty = shelfInfos.Where(t => t.ShelfStatus == ShelfStatusEnum.非空货架) .Where(t => !shelfIds.Contains(t.Id)) .ToList(); notEmptyToEmpty.ForEach(t => t.ShelfStatus = ShelfStatusEnum.空货架); var emptyToNotEmpty = shelfInfos.Where(t => t.ShelfStatus == ShelfStatusEnum.空货架) .Where(t => shelfIds.Contains(t.Id)) .ToList(); emptyToNotEmpty.ForEach(t => t.ShelfStatus = ShelfStatusEnum.非空货架); DbHelp.db.Updateable(notEmptyToEmpty) .UpdateColumns(t => new { t.ShelfStatus }) .ExecuteCommand(); DbHelp.db.Updateable(emptyToNotEmpty) .UpdateColumns(t => new { t.ShelfStatus }) .ExecuteCommand(); } }); } } }