using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Reflection.Metadata; 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.InStock, LocationStatusEnum.Free); if (cachePointGroups != null && cachePointGroups.Count > 0) { CachePointGroupDTO? pointGroupDTO = cachePointGroups.FirstOrDefault(x => x.EnableStatusB == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatusB == EnableStatusEnum.Normal.ObjToInt()); int id = pointGroupDTO?.IdB ?? 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.EnableStatusA == EnableStatusEnum.OnlyIn.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.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() && x.AreaId == areaId), _emptyAssignOrderBy); } public Dt_CachePoint? EmptyCachePoint(string toaddress) { List cachePoints = BaseDal.QueryData(x => x.PointName.Contains(toaddress) && x.EnableStatus == 0 && x.PointStatus == LocationStatusEnum.Free.ObjToInt()).ToList(); var point = cachePoints.FirstOrDefault(); return point; } 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.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.InStock, LocationStatusEnum.InStock); if (cachePointGroups != null && cachePointGroups.Count > 0) { CachePointGroupDTO? pointGroupDTO = cachePointGroups.FirstOrDefault(x => x.EnableStatusB == EnableStatusEnum.OnlyOut.ObjToInt() || x.EnableStatusB == EnableStatusEnum.Normal.ObjToInt()); int id = pointGroupDTO?.IdB ?? 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); } public WebResponseContent GetEndPoints() { WebResponseContent content = new WebResponseContent(); try { List cachePoints = BaseDal.QueryData(x => x.PointName.Contains("区")); List list = new List(); for (int i = 0; i < cachePoints.Count; i++) { object option = new { value = cachePoints[i].PointName, text = cachePoints[i].PointName }; list.Add(option); } content = WebResponseContent.Instance.OK(data: list); } catch (Exception ex) { content = WebResponseContent.Instance.Error(ex.Message); } return content; } //查询缓存架状态 public WebResponseContent GetHCJStaue(string stationcode) { WebResponseContent content = new WebResponseContent(); try { List cachePoints = BaseDal.QueryData(x => x.PointName.Contains("区")); List list = new List(); for (int i = 0; i < cachePoints.Count; i++) { object option = new { value = cachePoints[i].PointName, text = cachePoints[i].PointName }; list.Add(option); } content = WebResponseContent.Instance.OK(data: list); } catch (Exception ex) { content = WebResponseContent.Instance.Error(ex.Message); } return content; } } }