using SJZY.Track.Domain.TrackStatusAggregate; using SJZY.Track.Domain.TrackTemplateAggregate.Dtos; using SJZY.Track.Domain.TrackTemplateAggregate; using SJZY.Track.Domain.VEntities; using SJZY.Track.Domain.TrackStatusAggregate.Dtos; namespace SJZY.Track.Repository; public class TrackStatusRepository : BasicRepository, ITrackStatusRepository, IScopedDependency { public TrackStatusRepository() { } /// /// 获取轨迹模版明细 /// /// /// public async Task GetDetailAsync(int id) { var detail = await Context.Queryable().LeftJoin((a, b) => a.SubSystemId==b.Id) .Where((a, b) => a.Id==id) .Select((a, b) => new GetTrackStatusDetailVO { Id = a.Id, SubSystemId = a.SubSystemId, SubSystem= b.CnName, Code=a.Code, EntrackStatus=a.EnStatus, NodeId=a.Node, TrackStatus=a.Status }) .FirstAsync(); return detail; } /// /// 分页获取轨迹模版 /// /// /// public async Task> GetPageTrackStatus(GetPageTrackStatusVO input) { UnifyPageResultDto pagedList = new UnifyPageResultDto(); pagedList = await Context.Queryable().LeftJoin((a, b) => a.SubSystemId == b.Id) .LeftJoin((a, b, c) => a.CreateUserId==c.Id) .LeftJoin((a, b, c, d) => a.UpdateUserId== d.Id) .WhereIF(input.SubSystemId > 0, (a, b, c, d) => a.SubSystemId == input.SubSystemId) .WhereIF(!input.Keywords.IsNullOrWhiteSpace(), (a, b, c, d) => a.Status.Contains(input.Keywords) || a.EnStatus.Contains(input.Keywords) || a.Code.Contains(input.Keywords)) .Select((a, b, c, d) => new GetTrackStatusListVO { Id = a.Id, Code = a.Code, EntrackStatus = a.EnStatus, TrackStatus=a.Status, Node="", CreateTime = a.CreateTime, CreateUser = c.Name, UpdateTime = a.UpdateTime, UpdateUser = d.Name, SubSystem = b.CnName }) .ToPagedListAsync(input.PageIndex, input.PageSize); return pagedList; } }