From c8ad695a27449d02458eb844a643fee13cf44d96 Mon Sep 17 00:00:00 2001
From: moyongzhen <2534173414@qq.com>
Date: Wed, 28 Feb 2024 11:27:34 +0800
Subject: [PATCH] =?UTF-8?q?=E8=BD=A8=E8=BF=B9=E7=8A=B6=E6=80=81=E5=8A=9F?=
=?UTF-8?q?=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../TrackStatus/GetTrackStatusDetailDto.cs | 46 ++++++++++++
.../Dtos/TrackStatus/GetTrackStatusListDto.cs | 75 +++++++++++++++++++
.../TrackStatus/TrackStatusService.cs | 37 +++++++++
.../SJZY.Track.Domain.csproj | 2 -
.../Dtos/GetPageTrackStatusVO.cs | 21 ++++++
.../Dtos/GetTrackStatusDetailVO.cs | 46 ++++++++++++
.../Dtos/GetTrackStatusListVO.cs | 61 +++++++++++++++
.../ITrackStatusRepository.cs | 7 +-
.../TrackStatusRepository.cs | 56 ++++++++++++++
9 files changed, 347 insertions(+), 4 deletions(-)
create mode 100644 src/SJZY.Track.Application/Dtos/TrackStatus/GetTrackStatusDetailDto.cs
create mode 100644 src/SJZY.Track.Application/Dtos/TrackStatus/GetTrackStatusListDto.cs
create mode 100644 src/SJZY.Track.Domain/TrackStatusAggregate/Dtos/GetPageTrackStatusVO.cs
create mode 100644 src/SJZY.Track.Domain/TrackStatusAggregate/Dtos/GetTrackStatusDetailVO.cs
create mode 100644 src/SJZY.Track.Domain/TrackStatusAggregate/Dtos/GetTrackStatusListVO.cs
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 432cabad..d21adead 100644
--- a/src/SJZY.Track.Application/Services/TrackStatus/TrackStatusService.cs
+++ b/src/SJZY.Track.Application/Services/TrackStatus/TrackStatusService.cs
@@ -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
};
}
+ ///
+ /// 根据状态id获取轨迹状态
+ ///
+ ///
+ ///
+ [HttpGet("GetDetail")]
+ public async Task> GetDetailAsync(int id)
+ {
+ var detailInfo = await _trackStatusRepository.GetDetailAsync(id);
+ if (detailInfo == null)
+ {
+ return new UnifyResultDto(false, null, "未查询到轨迹状态");
+ }
+
+ 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)
{
diff --git a/src/SJZY.Track.Domain/SJZY.Track.Domain.csproj b/src/SJZY.Track.Domain/SJZY.Track.Domain.csproj
index 69cf9fb3..7c4f268b 100644
--- a/src/SJZY.Track.Domain/SJZY.Track.Domain.csproj
+++ b/src/SJZY.Track.Domain/SJZY.Track.Domain.csproj
@@ -16,8 +16,6 @@
-
-
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.Domain/TrackStatusAggregate/ITrackStatusRepository.cs b/src/SJZY.Track.Domain/TrackStatusAggregate/ITrackStatusRepository.cs
index 34cb832b..7d2691a2 100644
--- a/src/SJZY.Track.Domain/TrackStatusAggregate/ITrackStatusRepository.cs
+++ b/src/SJZY.Track.Domain/TrackStatusAggregate/ITrackStatusRepository.cs
@@ -1,6 +1,9 @@
-namespace SJZY.Track.Domain.TrackStatusAggregate;
+using SJZY.Track.Domain.TrackStatusAggregate.Dtos;
+
+namespace SJZY.Track.Domain.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.Repository/TrackStatusRepository.cs b/src/SJZY.Track.Repository/TrackStatusRepository.cs
index bb13b376..17bc0a33 100644
--- a/src/SJZY.Track.Repository/TrackStatusRepository.cs
+++ b/src/SJZY.Track.Repository/TrackStatusRepository.cs
@@ -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, ITrackS
{
}
+ ///
+ /// 获取轨迹模版明细
+ ///
+ ///
+ ///
+ 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