From 0be6d452ee93adb741e217b95f4e87c8ea253eb4 Mon Sep 17 00:00:00 2001 From: xiaolipro <2357729423@qq.com> Date: Fri, 26 Jul 2024 15:54:21 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix=EF=BC=9ACalcRuleList?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AutoMapper/ForewarningMapperProfile.cs | 4 +++- .../Helpers/ForewarningHelper.cs | 14 ++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/SJZY.Track.Application/AutoMapper/ForewarningMapperProfile.cs b/src/SJZY.Track.Application/AutoMapper/ForewarningMapperProfile.cs index c06978eb..2498dccb 100644 --- a/src/SJZY.Track.Application/AutoMapper/ForewarningMapperProfile.cs +++ b/src/SJZY.Track.Application/AutoMapper/ForewarningMapperProfile.cs @@ -3,6 +3,7 @@ using SJZY.Track.Application.Contract.Dtos.Forewarning; using SJZY.Track.Domain.Aggregates.ForewarningAggregate; using SJZY.Track.Domain.Aggregates.KPIAreaAggregate; using SJZY.Track.Domain.Dtos.Forewarning; +using Volo.Abp.AutoMapper; namespace SJZY.Track.Application.AutoMapper; @@ -10,7 +11,8 @@ public class ForewarningMapperProfile :Profile { public ForewarningMapperProfile() { - CreateMap(MemberList.None); + CreateMap(MemberList.None) + .Ignore(x => x.WarningFactors); CreateMap(MemberList.None); CreateMap(); CreateMap(MemberList.None); diff --git a/src/SJZY.Track.Application/Helpers/ForewarningHelper.cs b/src/SJZY.Track.Application/Helpers/ForewarningHelper.cs index c03be716..cfdc5cfb 100644 --- a/src/SJZY.Track.Application/Helpers/ForewarningHelper.cs +++ b/src/SJZY.Track.Application/Helpers/ForewarningHelper.cs @@ -23,14 +23,14 @@ public class ForewarningHelper { throw new BusinessException(message: "轨迹状态区间或因素列表为空"); } - + var len = statusSpans.Count * factors.Select(f => f.FactorValue.Count).Aggregate((pre, cur) => pre * cur); if (len == 0) { throw new BusinessException(message: "轨迹状态区间或因素列表为空"); } - var rules = new List(len); + var rules = Enumerable.Repeat(new WarningRuleEntity(), len).ToList(); var repeat = len / statusSpans.Count; @@ -39,7 +39,7 @@ public class ForewarningHelper foreach (var factor in factors) { var factorValueCount = factor.FactorValue.Count; - + // repeat梯度下降,与times成反比关系 repeat /= factor.FactorValue.Count; var times = len / repeat / factorValueCount; @@ -52,13 +52,11 @@ public class ForewarningHelper private static void FillStatus(List statusSpans, List rules, int repeat) { - for (var i = 0; i < statusSpans.Count; i++) + var row = 0; + foreach (var span in statusSpans) { - var span = statusSpans[i]; - - for (var j = 0; j < repeat; j++) + for (var i = 0; i < repeat; i++, row++) { - var row = i * repeat + j; rules[row].StartTrackStatusId = span.StartTrackStatusId; rules[row].EndTrackStatusId = span.EndTrackStatusId; } From 4a0df97333ac2de7c1c293410e3e292a79bb1d88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=9F=E5=96=9C=E6=97=BA?= Date: Fri, 26 Jul 2024 17:23:00 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=E8=BD=A8=E8=BF=B9=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dtos/TrackNode/TrackNodeInput.cs | 29 ++++ .../Dtos/TrackStatus/QueryTrackNodeRequest.cs | 14 ++ .../AutoMapper/TrackNodeMapperProfile.cs | 20 +++ ...TrackChangeAfterUpdateOrderEventHandler.cs | 2 +- .../TrackNodeServices/TrackNodeService.cs | 132 ++++++++++++++++++ .../ITrackNodeRepository.cs | 27 ++++ .../TrackNodeAggregate/TrackNodeEntity.cs | 32 +++++ .../Dtos/TrackNode/TrackNodeDicDto.cs | 19 +++ .../Dtos/TrackNode/TrackNodeDto.cs | 56 ++++++++ .../Dtos/TrackNode/TrackNodePageDto.cs | 14 ++ .../Repositories/TrackNodeRepository.cs | 53 +++++++ 11 files changed, 397 insertions(+), 1 deletion(-) create mode 100644 src/SJZY.Track.Application.Contract/Dtos/TrackNode/TrackNodeInput.cs create mode 100644 src/SJZY.Track.Application.Contract/Dtos/TrackStatus/QueryTrackNodeRequest.cs create mode 100644 src/SJZY.Track.Application/AutoMapper/TrackNodeMapperProfile.cs create mode 100644 src/SJZY.Track.Application/Services/TrackNodeServices/TrackNodeService.cs create mode 100644 src/SJZY.Track.Domain/Aggregates/TrackNodeAggregate/ITrackNodeRepository.cs create mode 100644 src/SJZY.Track.Domain/Aggregates/TrackNodeAggregate/TrackNodeEntity.cs create mode 100644 src/SJZY.Track.Domain/Dtos/TrackNode/TrackNodeDicDto.cs create mode 100644 src/SJZY.Track.Domain/Dtos/TrackNode/TrackNodeDto.cs create mode 100644 src/SJZY.Track.Domain/Dtos/TrackNode/TrackNodePageDto.cs create mode 100644 src/SJZY.Track.Repository/Repositories/TrackNodeRepository.cs diff --git a/src/SJZY.Track.Application.Contract/Dtos/TrackNode/TrackNodeInput.cs b/src/SJZY.Track.Application.Contract/Dtos/TrackNode/TrackNodeInput.cs new file mode 100644 index 00000000..8e313589 --- /dev/null +++ b/src/SJZY.Track.Application.Contract/Dtos/TrackNode/TrackNodeInput.cs @@ -0,0 +1,29 @@ +namespace SJZY.Track.Application.Contract.Dtos.TrackNode; + +public class EditTrackNodeInput +{ + /// + /// 操作类型 + /// + public OptionType Options { get; set; } + + /// + /// 轨迹节点id,创建不用填 + /// + public long Id { get; set; } + + /// + /// 系统id + /// + public int SystemId { get; set; } + + /// + /// 节点名称 + /// + public string Name { get; set; } + + /// + /// 节点英文名称 + /// + public string EnName { get; set; } +} diff --git a/src/SJZY.Track.Application.Contract/Dtos/TrackStatus/QueryTrackNodeRequest.cs b/src/SJZY.Track.Application.Contract/Dtos/TrackStatus/QueryTrackNodeRequest.cs new file mode 100644 index 00000000..f7903f71 --- /dev/null +++ b/src/SJZY.Track.Application.Contract/Dtos/TrackStatus/QueryTrackNodeRequest.cs @@ -0,0 +1,14 @@ +namespace SJZY.Track.Application.Contract.Dtos.TrackStatus; + +public class QueryTrackNodeRequest:PageInfoInput +{ + /// + /// 关键字,节点中文和英文 + /// + public string? KeyWord { get; set; } + + /// + /// 子系统id + /// + public long? SystemId { get; set; } +} \ No newline at end of file diff --git a/src/SJZY.Track.Application/AutoMapper/TrackNodeMapperProfile.cs b/src/SJZY.Track.Application/AutoMapper/TrackNodeMapperProfile.cs new file mode 100644 index 00000000..af8699e0 --- /dev/null +++ b/src/SJZY.Track.Application/AutoMapper/TrackNodeMapperProfile.cs @@ -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(); + CreateMap(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)); + + } +} \ No newline at end of file diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackChangeAfterUpdateOrderEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackChangeAfterUpdateOrderEventHandler.cs index f402f3d1..b6632dea 100644 --- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackChangeAfterUpdateOrderEventHandler.cs +++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackChangeAfterUpdateOrderEventHandler.cs @@ -83,7 +83,7 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa CargoType = order.CargoType, Month = order.CreateTime.Month, Area = DetermineAreaBasedOnOrderDetails(order), - IsTransit = order.IsTransfer, + IsTransit = order.IsTransit, DeparturePort = order.LeavePort, ProductCode = order.ProductCode }; diff --git a/src/SJZY.Track.Application/Services/TrackNodeServices/TrackNodeService.cs b/src/SJZY.Track.Application/Services/TrackNodeServices/TrackNodeService.cs new file mode 100644 index 00000000..7b8f3d3a --- /dev/null +++ b/src/SJZY.Track.Application/Services/TrackNodeServices/TrackNodeService.cs @@ -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 +{ + /// + /// 轨迹节点服务 + /// + [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; + } + + /// + /// 轨迹节点编辑 + /// + /// + [HttpPost("Edit")] + public async Task EditAsync(EditTrackNodeInput input) + { + return input.Options switch + { + OptionType.新增 => await AddAsync(input), + OptionType.修改 => await UpdateAsync(input), + OptionType.删除 => await DeleteAsync(input), + _ => throw new BusinessException(message: "当前操作动作不合法") + }; + } + + /// + /// 获取分页轨迹节点 + /// + /// + /// + [HttpPost("GetList")] + public async Task> GetPageTrackNode(QueryTrackNodeRequest input) + { + var queryParam = ObjectMapper.Map(input); + var resultDto = await _trackNodeRepository.GetPageList(queryParam); + return resultDto; + } + + /// + /// 获取分页轨迹字典,下拉框用的 + /// + /// + /// + [HttpPost("GetTrackNodeOption")] + public async Task> GetTrackNodeOption(QueryTrackNodeRequest input) + { + var queryParam = ObjectMapper.Map(input); + var resultDto = await _trackNodeRepository.GetPageDicList(queryParam); + return resultDto; + } + + #region 私有方法 + + private async Task 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(input); + var isTrue = await _trackNodeRepository.InsertAsync(entity); + + return new UnifyResultDto("200", "新增成功", isTrue); + } + + private async Task 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 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 + } +} \ No newline at end of file diff --git a/src/SJZY.Track.Domain/Aggregates/TrackNodeAggregate/ITrackNodeRepository.cs b/src/SJZY.Track.Domain/Aggregates/TrackNodeAggregate/ITrackNodeRepository.cs new file mode 100644 index 00000000..10d1cb70 --- /dev/null +++ b/src/SJZY.Track.Domain/Aggregates/TrackNodeAggregate/ITrackNodeRepository.cs @@ -0,0 +1,27 @@ +using SJZY.Track.Domain.Dtos.TrackNode; + +namespace SJZY.Track.Domain.Aggregates.TrackNodeAggregate; + +public interface ITrackNodeRepository:IBasicRepository +{ + /// + /// 分页查询 + /// + /// + /// + Task> GetPageList(TrackNodePageDto queryParam); + + /// + /// 分页查询字典 + /// + /// + /// + Task> GetPageDicList(TrackNodePageDto queryParam); + + /// + /// 删除 + /// + /// + /// + Task DeleteById(long inputId); +} \ No newline at end of file diff --git a/src/SJZY.Track.Domain/Aggregates/TrackNodeAggregate/TrackNodeEntity.cs b/src/SJZY.Track.Domain/Aggregates/TrackNodeAggregate/TrackNodeEntity.cs new file mode 100644 index 00000000..c17ef2c2 --- /dev/null +++ b/src/SJZY.Track.Domain/Aggregates/TrackNodeAggregate/TrackNodeEntity.cs @@ -0,0 +1,32 @@ +namespace SJZY.Track.Domain.Aggregates.TrackNodeAggregate; + +/// +/// 轨迹节点主表 +/// +[SugarTable("t_track_node", TableDescription = "轨迹节点主表")] +public class TrackNodeEntity : IFullAuditedBasicEntitys, IAggregateRoot +{ + /// + /// 自增主键 + /// + [SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "自增主键")] + public long Id { get; set; } + + /// + /// 子系统id + /// + [SugarColumn(ColumnName = "SubSystemId", ColumnDescription = "子系统id")] + public int SubSystemId { get; set; } + + /// + /// 节点名称 + /// + [SugarColumn(ColumnName = "NodeName", Length = 32, ColumnDescription = "节点名称")] + public string? NodeName { get; set; } + + /// + /// 节点英文名称 + /// + [SugarColumn(ColumnName = "NodeEnName", Length = 32, ColumnDescription = "节点英文名称")] + public string? NodeEnName { get; set; } +} \ No newline at end of file diff --git a/src/SJZY.Track.Domain/Dtos/TrackNode/TrackNodeDicDto.cs b/src/SJZY.Track.Domain/Dtos/TrackNode/TrackNodeDicDto.cs new file mode 100644 index 00000000..8402e103 --- /dev/null +++ b/src/SJZY.Track.Domain/Dtos/TrackNode/TrackNodeDicDto.cs @@ -0,0 +1,19 @@ +namespace SJZY.Track.Domain.Dtos.TrackNode; + +public class TrackNodeDicDto +{ + /// + /// 节点id + /// + public long Id { get; set; } + + /// + /// 名称 + /// + public string NodeName { get; set; } + + /// + /// 名称 + /// + public string EnName { get; set; } +} \ No newline at end of file diff --git a/src/SJZY.Track.Domain/Dtos/TrackNode/TrackNodeDto.cs b/src/SJZY.Track.Domain/Dtos/TrackNode/TrackNodeDto.cs new file mode 100644 index 00000000..185f432f --- /dev/null +++ b/src/SJZY.Track.Domain/Dtos/TrackNode/TrackNodeDto.cs @@ -0,0 +1,56 @@ +namespace SJZY.Track.Domain.Dtos.TrackNode; + +/// +/// 轨迹节点主表 DTO +/// +public class TrackNodeDto +{ + /// + /// 自增主键 + /// + public long Id { get; set; } + + /// + /// 子系统id + /// + public int SubSystemId { get; set; } + + /// + /// 节点名称 + /// + public string? NodeName { get; set; } + + /// + /// 节点英文名称 + /// + public string? NodeEnName { get; set; } + + /// + /// 是否删除 + /// + public bool IsDeleted { get; set; } + + /// + /// 创建人id + /// + public int CreateUserId { get; set; } + + /// + /// 创建时间 + /// + public DateTime CreateTime { get; set; } + + /// + /// 更新人 + /// + public int? UpdateUserId { get; set; } + + /// + /// 更新时间 + /// + public DateTime? UpdateTime { get; set; } + + public string? CreateUserName { get; set; } + + public string? UpdateUserName { get; set; } +} \ No newline at end of file diff --git a/src/SJZY.Track.Domain/Dtos/TrackNode/TrackNodePageDto.cs b/src/SJZY.Track.Domain/Dtos/TrackNode/TrackNodePageDto.cs new file mode 100644 index 00000000..059e92f2 --- /dev/null +++ b/src/SJZY.Track.Domain/Dtos/TrackNode/TrackNodePageDto.cs @@ -0,0 +1,14 @@ +namespace SJZY.Track.Domain.Dtos.TrackNode; + +public class TrackNodePageDto:PageInfoInput +{ + /// + /// 关键字,节点中文和英文 + /// + public string? KeyWord { get; set; } + + /// + /// 子系统id + /// + public long? SystemId { get; set; } +} \ No newline at end of file diff --git a/src/SJZY.Track.Repository/Repositories/TrackNodeRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackNodeRepository.cs new file mode 100644 index 00000000..be340230 --- /dev/null +++ b/src/SJZY.Track.Repository/Repositories/TrackNodeRepository.cs @@ -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,ITrackNodeRepository,IScopedDependency +{ + public async Task> GetPageList(TrackNodePageDto queryParam) + { + var result = await Context.Queryable() + .LeftJoin((t,u1)=>t.CreateUserId==u1.Id) + .LeftJoin((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> GetPageDicList(TrackNodePageDto queryParam) + { + var result = await Context.Queryable() + .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 DeleteById(long inputId) + { + return Context.Deleteable().Where(val=>val.Id==inputId).ExecuteCommandAsync(); + } +} \ No newline at end of file From 2f172f43c0e9aa9b905573183904d0729f61e445 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=9F=E5=96=9C=E6=97=BA?= Date: Fri, 26 Jul 2024 17:56:03 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat:=20=E8=BD=A8=E8=BF=B9=E6=98=A0?= =?UTF-8?q?=E5=B0=84-=E6=96=B0=E5=A2=9E=E6=8B=89=E5=8F=96=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E5=A2=9E=E5=8A=A0=E5=AD=97=E6=AE=B5=EF=BC=9A=E8=A7=A6?= =?UTF-8?q?=E5=8F=91=E6=8B=89=E5=8F=96=E8=8A=82=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dtos/TrackPull/EditTrackPullConfigInput.cs | 6 +++++- .../Aggregates/TrackPullAggregate/TrackPullConfigEntity.cs | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/SJZY.Track.Application.Contract/Dtos/TrackPull/EditTrackPullConfigInput.cs b/src/SJZY.Track.Application.Contract/Dtos/TrackPull/EditTrackPullConfigInput.cs index f60beeb4..3a6b51dc 100644 --- a/src/SJZY.Track.Application.Contract/Dtos/TrackPull/EditTrackPullConfigInput.cs +++ b/src/SJZY.Track.Application.Contract/Dtos/TrackPull/EditTrackPullConfigInput.cs @@ -70,7 +70,11 @@ public class EditTrackPullConfigInput public string? OrderPath { get; set; } /// - /// 轨迹明细路径 /// public string? TrackDetailsPath { get; set; } + + /// + /// 轨迹内容code + /// + public string? TrackContentCode { get; set; } } \ No newline at end of file diff --git a/src/SJZY.Track.Domain/Aggregates/TrackPullAggregate/TrackPullConfigEntity.cs b/src/SJZY.Track.Domain/Aggregates/TrackPullAggregate/TrackPullConfigEntity.cs index 4c6d7ed7..4e016b17 100644 --- a/src/SJZY.Track.Domain/Aggregates/TrackPullAggregate/TrackPullConfigEntity.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackPullAggregate/TrackPullConfigEntity.cs @@ -35,4 +35,9 @@ public class TrackPullConfigEntity : IFullAuditedBasicEntitys, IAggregateRoot /// [SugarColumn(ColumnName = "SubSystemId")] public int SubSystemId { get; set; } + + /// + /// 轨迹内容code + /// + public string? TrackContentCode { get; set; } } \ No newline at end of file