Merge remote-tracking branch 'origin/S04轨迹预警' into S04轨迹预警
This commit is contained in:
commit
707a05f911
@ -0,0 +1,29 @@
|
|||||||
|
namespace SJZY.Track.Application.Contract.Dtos.TrackNode;
|
||||||
|
|
||||||
|
public class EditTrackNodeInput
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 操作类型
|
||||||
|
/// </summary>
|
||||||
|
public OptionType Options { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 轨迹节点id,创建不用填
|
||||||
|
/// </summary>
|
||||||
|
public long Id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 系统id
|
||||||
|
/// </summary>
|
||||||
|
public int SystemId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 节点名称
|
||||||
|
/// </summary>
|
||||||
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 节点英文名称
|
||||||
|
/// </summary>
|
||||||
|
public string EnName { get; set; }
|
||||||
|
}
|
||||||
@ -70,7 +70,11 @@ public class EditTrackPullConfigInput
|
|||||||
public string? OrderPath { get; set; }
|
public string? OrderPath { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 轨迹明细路径
|
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? TrackDetailsPath { get; set; }
|
public string? TrackDetailsPath { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 轨迹内容code
|
||||||
|
/// </summary>
|
||||||
|
public string? TrackContentCode { get; set; }
|
||||||
}
|
}
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
namespace SJZY.Track.Application.Contract.Dtos.TrackStatus;
|
||||||
|
|
||||||
|
public class QueryTrackNodeRequest:PageInfoInput
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 关键字,节点中文和英文
|
||||||
|
/// </summary>
|
||||||
|
public string? KeyWord { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 子系统id
|
||||||
|
/// </summary>
|
||||||
|
public long? SystemId { get; set; }
|
||||||
|
}
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
using AutoMapper;
|
||||||
|
using SJZY.Track.Application.Contract.Dtos.TrackNode;
|
||||||
|
using SJZY.Track.Application.Contract.Dtos.TrackStatus;
|
||||||
|
using SJZY.Track.Domain.Aggregates.TrackNodeAggregate;
|
||||||
|
using SJZY.Track.Domain.Dtos.TrackNode;
|
||||||
|
|
||||||
|
namespace SJZY.Track.Application.AutoMapper;
|
||||||
|
|
||||||
|
public class TrackNodeMapperProfile :Profile
|
||||||
|
{
|
||||||
|
public TrackNodeMapperProfile()
|
||||||
|
{
|
||||||
|
CreateMap<QueryTrackNodeRequest, TrackNodePageDto>();
|
||||||
|
CreateMap<EditTrackNodeInput, TrackNodeEntity>(MemberList.None)
|
||||||
|
.ForMember(val => val.NodeName, opt => opt.MapFrom(src => src.Name))
|
||||||
|
.ForMember(val => val.NodeEnName, opt => opt.MapFrom(src => src.EnName))
|
||||||
|
.ForMember(val => val.SubSystemId, opt => opt.MapFrom(src => src.SystemId));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,132 @@
|
|||||||
|
using Microsoft.Extensions.Localization;
|
||||||
|
using SJZY.Track.Application.Contract.Dtos.TrackNode;
|
||||||
|
using SJZY.Track.Application.Contract.Dtos.TrackStatus;
|
||||||
|
using SJZY.Track.Application.Localization;
|
||||||
|
using SJZY.Track.Domain.Aggregates.TrackNodeAggregate;
|
||||||
|
using SJZY.Track.Domain.Aggregates.TrackStatusAggregate;
|
||||||
|
using SJZY.Track.Domain.Dtos.TrackNode;
|
||||||
|
using Volo.Abp.DependencyInjection;
|
||||||
|
|
||||||
|
namespace SJZY.Track.Application.Services.TrackNodeServices
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 轨迹节点服务
|
||||||
|
/// </summary>
|
||||||
|
[ApiExplorerSettings(GroupName = "轨迹节点")]
|
||||||
|
[Route("/Track/Node")]
|
||||||
|
public class TrackNodeService : ApplicationService, ITransientDependency
|
||||||
|
{
|
||||||
|
private readonly ITrackStatusRepository _trackStatusRepository;
|
||||||
|
private readonly ITrackNodeRepository _trackNodeRepository;
|
||||||
|
|
||||||
|
public TrackNodeService(
|
||||||
|
ITrackNodeRepository trackNodeRepository, ITrackStatusRepository trackStatusRepository)
|
||||||
|
{
|
||||||
|
this._trackNodeRepository = trackNodeRepository;
|
||||||
|
_trackStatusRepository = trackStatusRepository;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 轨迹节点编辑
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost("Edit")]
|
||||||
|
public async Task<UnifyResultDto> EditAsync(EditTrackNodeInput input)
|
||||||
|
{
|
||||||
|
return input.Options switch
|
||||||
|
{
|
||||||
|
OptionType.新增 => await AddAsync(input),
|
||||||
|
OptionType.修改 => await UpdateAsync(input),
|
||||||
|
OptionType.删除 => await DeleteAsync(input),
|
||||||
|
_ => throw new BusinessException(message: "当前操作动作不合法")
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取分页轨迹节点
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="input"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost("GetList")]
|
||||||
|
public async Task<UnifyPageResultDto<TrackNodeDto>> GetPageTrackNode(QueryTrackNodeRequest input)
|
||||||
|
{
|
||||||
|
var queryParam = ObjectMapper.Map<QueryTrackNodeRequest, TrackNodePageDto>(input);
|
||||||
|
var resultDto = await _trackNodeRepository.GetPageList(queryParam);
|
||||||
|
return resultDto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取分页轨迹字典,下拉框用的
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="input"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost("GetTrackNodeOption")]
|
||||||
|
public async Task<UnifyPageResultDto<TrackNodeDicDto>> GetTrackNodeOption(QueryTrackNodeRequest input)
|
||||||
|
{
|
||||||
|
var queryParam = ObjectMapper.Map<QueryTrackNodeRequest, TrackNodePageDto>(input);
|
||||||
|
var resultDto = await _trackNodeRepository.GetPageDicList(queryParam);
|
||||||
|
return resultDto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#region 私有方法
|
||||||
|
|
||||||
|
private async Task<UnifyResultDto> AddAsync(EditTrackNodeInput input)
|
||||||
|
{
|
||||||
|
#region 业务校验
|
||||||
|
var trackNodesEntitys = await _trackNodeRepository.GetListAsync(a =>
|
||||||
|
a.SubSystemId == input.SystemId && (a.NodeName == input.Name || a.NodeEnName == input.EnName));
|
||||||
|
if (trackNodesEntitys.Any())
|
||||||
|
{
|
||||||
|
var trackNodeName = trackNodesEntitys.FirstOrDefault(a => a.NodeName == input.Name);
|
||||||
|
if (trackNodeName != null)
|
||||||
|
{
|
||||||
|
throw new BusinessException(message: "该子系统下节点名称已存在");
|
||||||
|
}
|
||||||
|
var trackNodeEnName = trackNodesEntitys.FirstOrDefault(a => a.NodeEnName == input.EnName);
|
||||||
|
if (trackNodeEnName != null)
|
||||||
|
{
|
||||||
|
throw new BusinessException(message: "该子系统下节点英文名称已存在");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
var entity = ObjectMapper.Map<EditTrackNodeInput, TrackNodeEntity>(input);
|
||||||
|
var isTrue = await _trackNodeRepository.InsertAsync(entity);
|
||||||
|
|
||||||
|
return new UnifyResultDto("200", "新增成功", isTrue);
|
||||||
|
}
|
||||||
|
|
||||||
|
private async Task<UnifyResultDto> UpdateAsync(EditTrackNodeInput input)
|
||||||
|
{
|
||||||
|
#region 业务校验
|
||||||
|
|
||||||
|
var trackNodesEntitys = await _trackNodeRepository.GetFirstAsync(a => a.Id == input.Id);
|
||||||
|
if (trackNodesEntitys == null)
|
||||||
|
{
|
||||||
|
return new UnifyResultDto("200", "没有找到数据,更新失败", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
trackNodesEntitys.NodeEnName = input.EnName;
|
||||||
|
trackNodesEntitys.NodeName = input.Name;
|
||||||
|
var isTrue = await _trackNodeRepository.UpdateAsync(trackNodesEntitys);
|
||||||
|
|
||||||
|
return new UnifyResultDto("200", "修改成功", isTrue);
|
||||||
|
}
|
||||||
|
|
||||||
|
private async Task<UnifyResultDto> DeleteAsync(EditTrackNodeInput input)
|
||||||
|
{
|
||||||
|
var trackStatus = await _trackStatusRepository.GetFirstAsync(val => val.Node == input.Id && val.SubSystemId == input.SystemId);
|
||||||
|
if(trackStatus!=null)
|
||||||
|
{
|
||||||
|
return new UnifyResultDto("200", "删除失败,该节点已被使用", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
var rows = await _trackNodeRepository.DeleteById(input.Id);
|
||||||
|
return new UnifyResultDto("200", "删除成功", rows>0);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,27 @@
|
|||||||
|
using SJZY.Track.Domain.Dtos.TrackNode;
|
||||||
|
|
||||||
|
namespace SJZY.Track.Domain.Aggregates.TrackNodeAggregate;
|
||||||
|
|
||||||
|
public interface ITrackNodeRepository:IBasicRepository<TrackNodeEntity>
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 分页查询
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="queryParam"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
Task<UnifyPageResultDto<TrackNodeDto>> GetPageList(TrackNodePageDto queryParam);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 分页查询字典
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="queryParam"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
Task<UnifyPageResultDto<TrackNodeDicDto>> GetPageDicList(TrackNodePageDto queryParam);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 删除
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="inputId"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
Task<int> DeleteById(long inputId);
|
||||||
|
}
|
||||||
@ -0,0 +1,32 @@
|
|||||||
|
namespace SJZY.Track.Domain.Aggregates.TrackNodeAggregate;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 轨迹节点主表
|
||||||
|
/// </summary>
|
||||||
|
[SugarTable("t_track_node", TableDescription = "轨迹节点主表")]
|
||||||
|
public class TrackNodeEntity : IFullAuditedBasicEntitys, IAggregateRoot
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 自增主键
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "自增主键")]
|
||||||
|
public long Id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 子系统id
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnName = "SubSystemId", ColumnDescription = "子系统id")]
|
||||||
|
public int SubSystemId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 节点名称
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnName = "NodeName", Length = 32, ColumnDescription = "节点名称")]
|
||||||
|
public string? NodeName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 节点英文名称
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(ColumnName = "NodeEnName", Length = 32, ColumnDescription = "节点英文名称")]
|
||||||
|
public string? NodeEnName { get; set; }
|
||||||
|
}
|
||||||
@ -35,4 +35,9 @@ public class TrackPullConfigEntity : IFullAuditedBasicEntitys, IAggregateRoot
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(ColumnName = "SubSystemId")]
|
[SugarColumn(ColumnName = "SubSystemId")]
|
||||||
public int SubSystemId { get; set; }
|
public int SubSystemId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 轨迹内容code
|
||||||
|
/// </summary>
|
||||||
|
public string? TrackContentCode { get; set; }
|
||||||
}
|
}
|
||||||
19
src/SJZY.Track.Domain/Dtos/TrackNode/TrackNodeDicDto.cs
Normal file
19
src/SJZY.Track.Domain/Dtos/TrackNode/TrackNodeDicDto.cs
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
namespace SJZY.Track.Domain.Dtos.TrackNode;
|
||||||
|
|
||||||
|
public class TrackNodeDicDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 节点id
|
||||||
|
/// </summary>
|
||||||
|
public long Id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 名称
|
||||||
|
/// </summary>
|
||||||
|
public string NodeName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 名称
|
||||||
|
/// </summary>
|
||||||
|
public string EnName { get; set; }
|
||||||
|
}
|
||||||
56
src/SJZY.Track.Domain/Dtos/TrackNode/TrackNodeDto.cs
Normal file
56
src/SJZY.Track.Domain/Dtos/TrackNode/TrackNodeDto.cs
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
namespace SJZY.Track.Domain.Dtos.TrackNode;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 轨迹节点主表 DTO
|
||||||
|
/// </summary>
|
||||||
|
public class TrackNodeDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 自增主键
|
||||||
|
/// </summary>
|
||||||
|
public long Id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 子系统id
|
||||||
|
/// </summary>
|
||||||
|
public int SubSystemId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 节点名称
|
||||||
|
/// </summary>
|
||||||
|
public string? NodeName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 节点英文名称
|
||||||
|
/// </summary>
|
||||||
|
public string? NodeEnName { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 是否删除
|
||||||
|
/// </summary>
|
||||||
|
public bool IsDeleted { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 创建人id
|
||||||
|
/// </summary>
|
||||||
|
public int CreateUserId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 创建时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime CreateTime { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 更新人
|
||||||
|
/// </summary>
|
||||||
|
public int? UpdateUserId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 更新时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime? UpdateTime { get; set; }
|
||||||
|
|
||||||
|
public string? CreateUserName { get; set; }
|
||||||
|
|
||||||
|
public string? UpdateUserName { get; set; }
|
||||||
|
}
|
||||||
14
src/SJZY.Track.Domain/Dtos/TrackNode/TrackNodePageDto.cs
Normal file
14
src/SJZY.Track.Domain/Dtos/TrackNode/TrackNodePageDto.cs
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
namespace SJZY.Track.Domain.Dtos.TrackNode;
|
||||||
|
|
||||||
|
public class TrackNodePageDto:PageInfoInput
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 关键字,节点中文和英文
|
||||||
|
/// </summary>
|
||||||
|
public string? KeyWord { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 子系统id
|
||||||
|
/// </summary>
|
||||||
|
public long? SystemId { get; set; }
|
||||||
|
}
|
||||||
@ -0,0 +1,53 @@
|
|||||||
|
using SJZY.Track.Domain.Aggregates.TrackNodeAggregate;
|
||||||
|
using SJZY.Track.Domain.Dtos.TrackNode;
|
||||||
|
using SJZY.Track.Domain.VEntities;
|
||||||
|
|
||||||
|
namespace SJZY.Track.Repository.Repositories;
|
||||||
|
|
||||||
|
public class TrackNodeRepository: BasicRepository<TrackNodeEntity>,ITrackNodeRepository,IScopedDependency
|
||||||
|
{
|
||||||
|
public async Task<UnifyPageResultDto<TrackNodeDto>> GetPageList(TrackNodePageDto queryParam)
|
||||||
|
{
|
||||||
|
var result = await Context.Queryable<TrackNodeEntity>()
|
||||||
|
.LeftJoin<VUserEntity>((t,u1)=>t.CreateUserId==u1.Id)
|
||||||
|
.LeftJoin<VUserEntity>((t,u1,u2)=>t.UpdateUserId==u2.Id)
|
||||||
|
.Where((t,u1,u2)=>!t.IsDeleted&&!u1.IsDeleted&&!u2.IsDeleted)
|
||||||
|
.WhereIF(!string.IsNullOrEmpty(queryParam.KeyWord), (t,u1,u2)=>t.NodeName!.Contains(queryParam.KeyWord)||t.NodeEnName!.Contains(queryParam.KeyWord))
|
||||||
|
.WhereIF(queryParam.SystemId.HasValue,(t,u1,u2)=>t.SubSystemId == queryParam.SystemId.Value)
|
||||||
|
.Select((t, u1, u2) =>new TrackNodeDto()
|
||||||
|
{
|
||||||
|
Id = t.Id,
|
||||||
|
NodeName = t.NodeName,
|
||||||
|
NodeEnName = t.NodeEnName,
|
||||||
|
SubSystemId = t.SubSystemId,
|
||||||
|
UpdateTime = t.UpdateTime,
|
||||||
|
CreateTime = t.CreateTime,
|
||||||
|
UpdateUserId = t.UpdateUserId,
|
||||||
|
UpdateUserName = u2.Name,
|
||||||
|
CreateUserName = u1.Name
|
||||||
|
}).ToPagedListAsync(queryParam.PageIndex, queryParam.PageSize);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<UnifyPageResultDto<TrackNodeDicDto>> GetPageDicList(TrackNodePageDto queryParam)
|
||||||
|
{
|
||||||
|
var result = await Context.Queryable<TrackNodeEntity>()
|
||||||
|
.Where((t)=>!t.IsDeleted)
|
||||||
|
.WhereIF(!string.IsNullOrEmpty(queryParam.KeyWord), (t)=>t.NodeName!.Contains(queryParam.KeyWord)||t.NodeEnName!.Contains(queryParam.KeyWord))
|
||||||
|
.WhereIF(queryParam.SystemId.HasValue,(t)=>t.SubSystemId == queryParam.SystemId.Value)
|
||||||
|
.Select(t =>new TrackNodeDicDto()
|
||||||
|
{
|
||||||
|
Id = t.Id,
|
||||||
|
NodeName = t.NodeName,
|
||||||
|
EnName = t.NodeEnName,
|
||||||
|
}).ToPagedListAsync(queryParam.PageIndex, queryParam.PageSize);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Task<int> DeleteById(long inputId)
|
||||||
|
{
|
||||||
|
return Context.Deleteable<TrackNodeEntity>().Where(val=>val.Id==inputId).ExecuteCommandAsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user