轨迹状态功能

This commit is contained in:
moyongzhen 2024-02-28 11:27:34 +08:00
parent e5419ec2f9
commit c8ad695a27
9 changed files with 347 additions and 4 deletions

View File

@ -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
{
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 子系统
/// </summary>
public string SubSystem { get; set; }
/// <summary>
/// 节点id
/// </summary>
public int NodeId { get; set; }
/// <summary>
/// 所属轨迹状态
/// </summary>
public string TrackStatus { get; set; }
/// <summary>
/// 轨迹状态代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 轨迹内容英文
/// </summary>
public string EntrackStatus { get; set; }
}
}

View File

@ -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
{
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 子系统
/// </summary>
public string SubSystem { get; set; }
/// <summary>
/// 所属节点
/// </summary>
public string Node { get; set; }
/// <summary>
/// 所属轨迹状态
/// </summary>
public string TrackStatus { get; set; }
/// <summary>
/// 轨迹状态代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 轨迹内容英文
/// </summary>
public string EntrackStatus { get; set; }
/// <summary>
/// 创建人
/// </summary>
public string CreateUser { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 修改人
/// </summary>
public string UpdateUser { get; set; }
/// <summary>
/// 修改时间
/// </summary>
public DateTime? UpdateTime { get; set; }
}
public class GetPageTrackStatusInput : PageInfoInput
{
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 关键字
/// </summary>
public string Keywords { get; set; }
}
}

View File

@ -1,7 +1,9 @@
using SJZY.Track.Application.Dtos.TrackStatus;
using SJZY.Track.Application.Dtos.TrackTemplates;
using SJZY.Track.Domain.TrackStatusAggregate;
using SJZY.Track.Domain.TrackStatusAggregate.Dtos;
using SJZY.Track.Domain.TrackTemplateAggregate;
using SJZY.Track.Domain.TrackTemplateAggregate.Dtos;
using System;
using System.Collections.Generic;
using System.Linq;
@ -43,6 +45,41 @@ namespace SJZY.Track.Application.Services.TrackStatus
};
}
/// <summary>
/// 根据状态id获取轨迹状态
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet("GetDetail")]
public async Task<UnifyResultDto<GetTrackStatusDetailDto>> GetDetailAsync(int id)
{
var detailInfo = await _trackStatusRepository.GetDetailAsync(id);
if (detailInfo == null)
{
return new UnifyResultDto<GetTrackStatusDetailDto>(false, null, "未查询到轨迹状态");
}
var dto = ObjectMapper.Map<GetTrackStatusDetailVO, GetTrackStatusDetailDto>(detailInfo);
return new UnifyResultDto<GetTrackStatusDetailDto>("200", "", dto);
}
/// <summary>
/// 获取分页轨迹状态
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("GetList")]
public async Task<UnifyPageResultDto<GetTrackStatusListDto>> GetPageTrackStatus(GetPageTrackStatusInput input)
{
var vo = ObjectMapper.Map<GetPageTrackStatusInput, GetPageTrackStatusVO>(input);
var resultDto = await _trackStatusRepository.GetPageTrackStatus(vo);
var pageResultDto =
ObjectMapper.Map<UnifyPageResultDto<GetTrackStatusListVO>, UnifyPageResultDto<GetTrackStatusListDto>>(
resultDto);
return pageResultDto;
}
#region 私有方法
private async Task<UnifyResultDto> AddAsync(EditTrackStatusInput input)
{

View File

@ -16,8 +16,6 @@
<Folder Include="TrackFlagAggregate\Dtos\" />
<Folder Include="TrackPullAggregate\Dtos\" />
<Folder Include="TrackPushAggregate\Dtos\" />
<Folder Include="TrackStatusAggregate\Dtos\" />
<Folder Include="TrackStatusAggregate\Dtos\" />
</ItemGroup>
</Project>

View File

@ -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
{
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 关键字
/// </summary>
public string Keywords { get; set; }
}
}

View File

@ -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
{
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 子系统
/// </summary>
public string SubSystem { get; set; }
/// <summary>
/// 节点id
/// </summary>
public int NodeId { get; set; }
/// <summary>
/// 所属轨迹状态
/// </summary>
public string TrackStatus { get; set; }
/// <summary>
/// 轨迹状态代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 轨迹内容英文
/// </summary>
public string EntrackStatus { get; set; }
}
}

View File

@ -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
{
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 子系统
/// </summary>
public string SubSystem { get; set; }
/// <summary>
/// 所属节点
/// </summary>
public string Node { get; set; }
/// <summary>
/// 所属轨迹状态
/// </summary>
public string TrackStatus { get; set; }
/// <summary>
/// 轨迹状态代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 轨迹内容英文
/// </summary>
public string EntrackStatus { get; set; }
/// <summary>
/// 创建人
/// </summary>
public string CreateUser { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 修改人
/// </summary>
public string UpdateUser { get; set; }
/// <summary>
/// 修改时间
/// </summary>
public DateTime? UpdateTime { get; set; }
}
}

View File

@ -1,6 +1,9 @@
namespace SJZY.Track.Domain.TrackStatusAggregate;
using SJZY.Track.Domain.TrackStatusAggregate.Dtos;
namespace SJZY.Track.Domain.TrackStatusAggregate;
public interface ITrackStatusRepository : IBasicRepository<TrackStatusEntity>
{
Task<GetTrackStatusDetailVO?> GetDetailAsync(int id);
Task<UnifyPageResultDto<GetTrackStatusListVO>> GetPageTrackStatus(GetPageTrackStatusVO input);
}

View File

@ -1,4 +1,8 @@
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;
@ -8,5 +12,57 @@ public class TrackStatusRepository : BasicRepository<TrackStatusEntity>, ITrackS
{
}
/// <summary>
/// 获取轨迹模版明细
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public async Task<GetTrackStatusDetailVO?> GetDetailAsync(int id)
{
var detail = await Context.Queryable<TrackStatusEntity>().LeftJoin<VSystemEntity>((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;
}
/// <summary>
/// 分页获取轨迹模版
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task<UnifyPageResultDto<GetTrackStatusListVO>> GetPageTrackStatus(GetPageTrackStatusVO input)
{
UnifyPageResultDto<GetTrackStatusListVO> pagedList = new UnifyPageResultDto<GetTrackStatusListVO>();
pagedList = await Context.Queryable<TrackStatusEntity>().LeftJoin<VSystemEntity>((a, b) => a.SubSystemId == b.Id)
.LeftJoin<VUserEntity>((a, b, c) => a.CreateUserId==c.Id)
.LeftJoin<VUserEntity>((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;
}
}