diff --git a/src/SJZY.Track.Application/Dtos/TrackStatus/GetTrackStatusDetailDto.cs b/src/SJZY.Track.Application/Dtos/TrackStatus/GetTrackStatusDetailDto.cs new file mode 100644 index 00000000..6779d6da --- /dev/null +++ b/src/SJZY.Track.Application/Dtos/TrackStatus/GetTrackStatusDetailDto.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SJZY.Track.Application.Dtos.TrackStatus +{ + public class GetTrackStatusDetailDto + { + /// + /// Id + /// + public int Id { get; set; } + + /// + /// 子系统id + /// + public int SubSystemId { get; set; } + + /// + /// 子系统 + /// + public string SubSystem { get; set; } + + /// + /// 节点id + /// + public int NodeId { get; set; } + + /// + /// 所属轨迹状态 + /// + public string TrackStatus { get; set; } + + /// + /// 轨迹状态代码 + /// + public string Code { get; set; } + + /// + /// 轨迹内容英文 + /// + public string EntrackStatus { get; set; } + } +} diff --git a/src/SJZY.Track.Application/Dtos/TrackStatus/GetTrackStatusListDto.cs b/src/SJZY.Track.Application/Dtos/TrackStatus/GetTrackStatusListDto.cs new file mode 100644 index 00000000..ec218c97 --- /dev/null +++ b/src/SJZY.Track.Application/Dtos/TrackStatus/GetTrackStatusListDto.cs @@ -0,0 +1,75 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SJZY.Track.Application.Dtos.TrackStatus +{ + public class GetTrackStatusListDto + { + /// + /// Id + /// + public int Id { get; set; } + + /// + /// 子系统 + /// + public string SubSystem { get; set; } + + /// + /// 所属节点 + /// + public string Node { get; set; } + + /// + /// 所属轨迹状态 + /// + public string TrackStatus { get; set; } + + /// + /// 轨迹状态代码 + /// + public string Code { get; set; } + + /// + /// 轨迹内容英文 + /// + public string EntrackStatus { get; set; } + + /// + /// 创建人 + /// + public string CreateUser { get; set; } + + /// + /// 创建时间 + /// + public DateTime? CreateTime { get; set; } + + /// + /// 修改人 + /// + public string UpdateUser { get; set; } + + /// + /// 修改时间 + /// + public DateTime? UpdateTime { get; set; } + } + + + public class GetPageTrackStatusInput : PageInfoInput + { + /// + /// 子系统id + /// + public int SubSystemId { get; set; } + + /// + /// 关键字 + /// + public string Keywords { get; set; } + } +} diff --git a/src/SJZY.Track.Application/Services/TrackStatus/TrackStatusService.cs b/src/SJZY.Track.Application/Services/TrackStatus/TrackStatusService.cs index b5a94b5d..84f93e92 100644 --- a/src/SJZY.Track.Application/Services/TrackStatus/TrackStatusService.cs +++ b/src/SJZY.Track.Application/Services/TrackStatus/TrackStatusService.cs @@ -36,12 +36,46 @@ public class TrackStatusService : ApplicationService, ITransientDependency }; } - #region 私有方法 + /// + /// 根据状态id获取轨迹状态 + /// + /// + /// + [HttpGet("GetDetail")] + public async Task> GetDetailAsync(int id) + { + var detailInfo = await _trackStatusRepository.GetDetailAsync(id); + if (detailInfo == null) + { + return new UnifyResultDto(false, null, "未查询到轨迹状态"); + } - private async Task AddAsync(EditTrackStatusInput input) - { - var entity = ObjectMapper.Map(input); - var isTrue = await _trackStatusRepository.InsertAsync(entity); + var dto = ObjectMapper.Map(detailInfo); + return new UnifyResultDto("200", "", dto); + } + + /// + /// 获取分页轨迹状态 + /// + /// + /// + [HttpPost("GetList")] + public async Task> GetPageTrackStatus(GetPageTrackStatusInput input) + { + var vo = ObjectMapper.Map(input); + var resultDto = await _trackStatusRepository.GetPageTrackStatus(vo); + var pageResultDto = + ObjectMapper.Map, UnifyPageResultDto>( + resultDto); + + return pageResultDto; + } + + #region 私有方法 + private async Task AddAsync(EditTrackStatusInput input) + { + var entity = ObjectMapper.Map(input); + var isTrue = await _trackStatusRepository.InsertAsync(entity); return new UnifyResultDto("200", "新增成功", isTrue); } diff --git a/src/SJZY.Track.Domain/Aggregates/TrackStatusAggregate/ITrackStatusRepository.cs b/src/SJZY.Track.Domain/Aggregates/TrackStatusAggregate/ITrackStatusRepository.cs index 9d17663e..4bcc5677 100644 --- a/src/SJZY.Track.Domain/Aggregates/TrackStatusAggregate/ITrackStatusRepository.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackStatusAggregate/ITrackStatusRepository.cs @@ -1,5 +1,7 @@ -namespace SJZY.Track.Domain.Aggregates.TrackStatusAggregate; +namespace SJZY.Track.Domain.Aggregates.TrackStatusAggregate; public interface ITrackStatusRepository : IBasicRepository { + Task GetDetailAsync(int id); + Task> GetPageTrackStatus(GetPageTrackStatusVO input); } \ No newline at end of file diff --git a/src/SJZY.Track.Domain/TrackStatusAggregate/Dtos/GetPageTrackStatusVO.cs b/src/SJZY.Track.Domain/TrackStatusAggregate/Dtos/GetPageTrackStatusVO.cs new file mode 100644 index 00000000..217e5e0f --- /dev/null +++ b/src/SJZY.Track.Domain/TrackStatusAggregate/Dtos/GetPageTrackStatusVO.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SJZY.Track.Domain.TrackStatusAggregate.Dtos +{ + public class GetPageTrackStatusVO : PageInfoInput + { + /// + /// 子系统id + /// + public int SubSystemId { get; set; } + + /// + /// 关键字 + /// + public string Keywords { get; set; } + } +} diff --git a/src/SJZY.Track.Domain/TrackStatusAggregate/Dtos/GetTrackStatusDetailVO.cs b/src/SJZY.Track.Domain/TrackStatusAggregate/Dtos/GetTrackStatusDetailVO.cs new file mode 100644 index 00000000..c99bfbc3 --- /dev/null +++ b/src/SJZY.Track.Domain/TrackStatusAggregate/Dtos/GetTrackStatusDetailVO.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SJZY.Track.Domain.TrackStatusAggregate.Dtos +{ + public class GetTrackStatusDetailVO + { + /// + /// Id + /// + public int Id { get; set; } + + /// + /// 子系统id + /// + public int SubSystemId { get; set; } + + /// + /// 子系统 + /// + public string SubSystem { get; set; } + + /// + /// 节点id + /// + public int NodeId { get; set; } + + /// + /// 所属轨迹状态 + /// + public string TrackStatus { get; set; } + + /// + /// 轨迹状态代码 + /// + public string Code { get; set; } + + /// + /// 轨迹内容英文 + /// + public string EntrackStatus { get; set; } + } +} diff --git a/src/SJZY.Track.Domain/TrackStatusAggregate/Dtos/GetTrackStatusListVO.cs b/src/SJZY.Track.Domain/TrackStatusAggregate/Dtos/GetTrackStatusListVO.cs new file mode 100644 index 00000000..bf0f622d --- /dev/null +++ b/src/SJZY.Track.Domain/TrackStatusAggregate/Dtos/GetTrackStatusListVO.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SJZY.Track.Domain.TrackStatusAggregate.Dtos +{ + public class GetTrackStatusListVO + { + /// + /// Id + /// + public int Id { get; set; } + + /// + /// 子系统 + /// + public string SubSystem { get; set; } + + /// + /// 所属节点 + /// + public string Node { get; set; } + + /// + /// 所属轨迹状态 + /// + public string TrackStatus { get; set; } + + /// + /// 轨迹状态代码 + /// + public string Code { get; set; } + + /// + /// 轨迹内容英文 + /// + public string EntrackStatus { get; set; } + + /// + /// 创建人 + /// + public string CreateUser { get; set; } + + /// + /// 创建时间 + /// + public DateTime? CreateTime { get; set; } + + /// + /// 修改人 + /// + public string UpdateUser { get; set; } + + /// + /// 修改时间 + /// + public DateTime? UpdateTime { get; set; } + } +} diff --git a/src/SJZY.Track.Repository/TrackStatusRepository.cs b/src/SJZY.Track.Repository/TrackStatusRepository.cs index c54bf511..38f7d3b7 100644 --- a/src/SJZY.Track.Repository/TrackStatusRepository.cs +++ b/src/SJZY.Track.Repository/TrackStatusRepository.cs @@ -1,4 +1,6 @@ -using SJZY.Track.Domain.Aggregates.TrackStatusAggregate; +using SJZY.Track.Domain.Aggregates.TrackStatusAggregate; +using SJZY.Track.Domain.TrackStatusAggregate.Dtos; +using SJZY.Track.Domain.VEntities; namespace SJZY.Track.Repository; @@ -7,4 +9,58 @@ public class TrackStatusRepository : BasicRepository, ITrackS 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; + } } \ No newline at end of file