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 == StatusEnum.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 == StatusEnum.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 == StatusEnum.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 == StatusEnum.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 == StatusEnum.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 == StatusEnum.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 { Dt_CachePoint cachePoints = BaseDal.QueryFirst(x => x.PointCode == stationcode); if (cachePoints == null) { content = WebResponseContent.Instance.Error("为找到此缓存架"); } content = WebResponseContent.Instance.OK(data: cachePoints); } catch (Exception ex) { content = WebResponseContent.Instance.Error(ex.Message); } return content; } public WebResponseContent UpdateHCJStaue(SaveModel saveModel) { WebResponseContent content = new WebResponseContent(); try { string stationcode = saveModel.MainData["stationcode"].ToString(); string palletCode = saveModel.MainData["palletCode"].ToString(); int toaddress = saveModel.MainData["toaddress"].ObjToInt(); Dt_CachePoint cachePoint = BaseDal.QueryFirst(x => x.PointCode == stationcode); if (cachePoint == null) { content = WebResponseContent.Instance.Error("为找到此缓存架"); } cachePoint.Materialtype = palletCode; cachePoint.PointStatus = toaddress; BaseDal.UpdateData(cachePoint); content = WebResponseContent.Instance.OK(); } catch (Exception ex) { content = WebResponseContent.Instance.Error(ex.Message); } return content; } public WebResponseContent PrintStatusUp(string pointCode) { WebResponseContent content = new WebResponseContent(); try { Dt_CachePoint cachePoint = BaseDal.QueryFirst(x => x.PointCode == pointCode); if (cachePoint == null) { return content.Error("打印信息不存在"); } //cachePoint.Status = PrintEnum.Printed.ObjToInt(); //BaseDal.UpdateData(cachePoint); return content.OK(); } catch (Exception ex) { content.Error("错误:" + ex.Message); } return content; } } }