Merge remote-tracking branch 'origin/S01-轨迹中台' into S01-轨迹中台

# Conflicts:
#	src/SJZY.Track.Application/Services/TrackStatus/TrackStatusService.cs
#	src/SJZY.Track.Domain/Aggregates/TrackStatusAggregate/ITrackStatusRepository.cs
#	src/SJZY.Track.Domain/SJZY.Track.Domain.csproj
#	src/SJZY.Track.Repository/TrackStatusRepository.cs
This commit is contained in:
李鹏军 2024-02-28 11:46:36 +08:00
commit 95ff38efd3
8 changed files with 348 additions and 7 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

@ -36,12 +36,46 @@ public class TrackStatusService : ApplicationService, ITransientDependency
};
}
#region 私有方法
/// <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, "未查询到轨迹状态");
}
private async Task<UnifyResultDto> AddAsync(EditTrackStatusInput input)
{
var entity = ObjectMapper.Map<EditTrackStatusInput, TrackStatusEntity>(input);
var isTrue = await _trackStatusRepository.InsertAsync(entity);
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)
{
var entity = ObjectMapper.Map<EditTrackStatusInput, TrackStatusEntity>(input);
var isTrue = await _trackStatusRepository.InsertAsync(entity);
return new UnifyResultDto("200", "新增成功", isTrue);
}

View File

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

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,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<TrackStatusEntity>, ITrackS
public TrackStatusRepository()
{
}
/// <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;
}
}