using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_Core; using WIDESEA_Core.BaseServices; using WIDESEA_Core.Enums; using WIDESEA_Core.Helper; using WIDESEA_DTO.Basic; using WIDESEA_IBasicRepository; using WIDESEA_IBasicService; using WIDESEA_Model.Models; namespace WIDESEA_BasicService { public partial class CachePointService : ServiceBase, ICachePointService { private readonly Dictionary _emptyAssignOrderBy = new() { { nameof(Dt_CachePoint.Depth), OrderByType.Desc }, { nameof(Dt_CachePoint.Column), OrderByType.Asc }, { nameof(Dt_CachePoint.Row), OrderByType.Asc }, }; public Dt_CachePoint? AssignCachePoint(int areaId) { List cachePointGroups = Repository.GetCachePointGroups(areaId, LocationStatusEnum.Free, LocationStatusEnum.InStock); if (cachePointGroups != null && cachePointGroups.Count > 0) { CachePointGroupDTO? pointGroupDTO = cachePointGroups.FirstOrDefault(x => x.PointStatusA == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatusA == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatusA == EnableStatusEnum.OnlyIn.ObjToInt())); int id = pointGroupDTO?.IdA ?? 0; return BaseDal.QueryFirst(x => x.Id == id); } cachePointGroups = Repository.GetCachePointGroups(areaId, LocationStatusEnum.Free, LocationStatusEnum.Free); if (cachePointGroups != null && cachePointGroups.Count > 0) { CachePointGroupDTO? pointGroupDTO = cachePointGroups.FirstOrDefault(x => x.PointStatusB == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatusB == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatusB == EnableStatusEnum.OnlyIn.ObjToInt())); int id = pointGroupDTO?.IdB ?? 0; return BaseDal.QueryFirst(x => x.Id == id); } return BaseDal.QueryFirst(x => x.PointStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() && x.AreaId == areaId), _emptyAssignOrderBy); } public Dt_CachePoint? GetIbStockCachePoint(int areaId) { List cachePointGroups = Repository.GetCachePointGroups(areaId, LocationStatusEnum.InStock, LocationStatusEnum.Free); if (cachePointGroups != null && cachePointGroups.Count > 0) { CachePointGroupDTO? pointGroupDTO = cachePointGroups.FirstOrDefault(x => x.PointStatusA == LocationStatusEnum.InStock.ObjToInt() && (x.EnableStatusA == EnableStatusEnum.OnlyOut.ObjToInt() || x.EnableStatusA == EnableStatusEnum.Normal.ObjToInt())); int id = pointGroupDTO?.IdA ?? 0; return BaseDal.QueryFirst(x => x.Id == id); } cachePointGroups = Repository.GetCachePointGroups(areaId, LocationStatusEnum.Free, LocationStatusEnum.InStock); if (cachePointGroups != null && cachePointGroups.Count > 0) { CachePointGroupDTO? pointGroupDTO = cachePointGroups.FirstOrDefault(x => x.PointStatusB == LocationStatusEnum.InStock.ObjToInt() && (x.EnableStatusB == EnableStatusEnum.OnlyOut.ObjToInt() || x.EnableStatusB == EnableStatusEnum.Normal.ObjToInt())); int id = pointGroupDTO?.IdB ?? 0; return BaseDal.QueryFirst(x => x.Id == id); } cachePointGroups = Repository.GetCachePointGroups(areaId, LocationStatusEnum.InStock, LocationStatusEnum.InStock); if (cachePointGroups != null && cachePointGroups.Count > 0) { CachePointGroupDTO? pointGroupDTO = cachePointGroups.FirstOrDefault(x => x.PointStatusA == LocationStatusEnum.InStock.ObjToInt() && (x.EnableStatusA == EnableStatusEnum.OnlyOut.ObjToInt() || x.EnableStatusA == EnableStatusEnum.Normal.ObjToInt())); int id = pointGroupDTO?.IdA ?? 0; return BaseDal.QueryFirst(x => x.Id == id); } return BaseDal.QueryFirst(x => x.PointStatus == LocationStatusEnum.InStock.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() && x.AreaId == areaId), _emptyAssignOrderBy); } } }