diff --git a/src/SJZY.Track.Application.Contract/Dtos/TrackContents/EditTrackContentInput.cs b/src/SJZY.Track.Application.Contract/Dtos/TrackContents/EditTrackContentInput.cs
index 44aa0fee..4bce2569 100644
--- a/src/SJZY.Track.Application.Contract/Dtos/TrackContents/EditTrackContentInput.cs
+++ b/src/SJZY.Track.Application.Contract/Dtos/TrackContents/EditTrackContentInput.cs
@@ -93,10 +93,10 @@ public class GetTrackContentDetailDto
///
/// 轨迹标记id
///
- public int? TrackFlagId { get; set; }
+ public string? TrackFlagId { get; set; }
///
- /// 轨迹标记
+ /// 轨迹标记ids
///
- public string TrackFlag { get; set; }
+ public List? TrackFlagIds { get; set; }
}
diff --git a/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs b/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs
index fdc5b12e..48bf22fe 100644
--- a/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs
+++ b/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs
@@ -60,7 +60,6 @@ public class TrackContentService : ApplicationService
var dto = ObjectMapper.Map(detailInfo);
- if (dto.TrackFlagId == 0) dto.TrackFlagId = null;
return new UnifyResultDto(GlobalConst.SuccessCode, "", dto);
}
diff --git a/src/SJZY.Track.Application/Services/TrackFlags/TrackFlagService.cs b/src/SJZY.Track.Application/Services/TrackFlags/TrackFlagService.cs
index 7f2669d1..445c9472 100644
--- a/src/SJZY.Track.Application/Services/TrackFlags/TrackFlagService.cs
+++ b/src/SJZY.Track.Application/Services/TrackFlags/TrackFlagService.cs
@@ -1,9 +1,10 @@
-using Microsoft.Extensions.Localization;
+using Microsoft.Extensions.Localization;
using SJZY.Track.Application.Contract.Dtos.TrackFlags;
using SJZY.Track.Application.Localization;
using SJZY.Track.Domain.Aggregates.TrackContentAggregate;
using SJZY.Track.Domain.Aggregates.TrackFlagAggregate;
using SJZY.Track.Domain.Dtos.TrackFlags;
+using SqlSugar;
using Volo.Abp.DependencyInjection;
namespace SJZY.Track.Application.Services.TrackFlags;
@@ -152,7 +153,8 @@ public class TrackFlagService : ApplicationService, ITransientDependency
{
#region 业务校验
- var isExistContent = await _trackContentRepository.GetFirstAsync(a => a.TrackFlagId == input.Id);
+ var isExistContent =
+ await _trackContentRepository.GetFirstAsync(a => SqlFunc.SplitIn(a.TrackFlagId, input.Id.ToString()));
if (isExistContent != null)
{
//throw new BusinessException(message: _stringLocalizer["IsExistTrackFlag"]);
diff --git a/src/SJZY.Track.Domain/Aggregates/TrackContentAggregate/TrackContentEntity.cs b/src/SJZY.Track.Domain/Aggregates/TrackContentAggregate/TrackContentEntity.cs
index b021473d..60dd5757 100644
--- a/src/SJZY.Track.Domain/Aggregates/TrackContentAggregate/TrackContentEntity.cs
+++ b/src/SJZY.Track.Domain/Aggregates/TrackContentAggregate/TrackContentEntity.cs
@@ -37,10 +37,10 @@ public class TrackContentEntity : IFullAuditedBasicEntitys, IAggregateRoot
public int SubSystemId { get; set; }
///
- /// 轨迹标记id
+ /// 轨迹标记id,多个逗号分隔
///
[SugarColumn(ColumnName = "TrackFlagId")]
- public int TrackFlagId { get; set; }
+ public string TrackFlagId { get; set; }
///
/// 所属轨迹状态id
diff --git a/src/SJZY.Track.Domain/Aggregates/TrackFlagAggregate/TrackFlagEntity.cs b/src/SJZY.Track.Domain/Aggregates/TrackFlagAggregate/TrackFlagEntity.cs
index 81d0da3e..835d2f68 100644
--- a/src/SJZY.Track.Domain/Aggregates/TrackFlagAggregate/TrackFlagEntity.cs
+++ b/src/SJZY.Track.Domain/Aggregates/TrackFlagAggregate/TrackFlagEntity.cs
@@ -1,4 +1,4 @@
-namespace SJZY.Track.Domain.Aggregates.TrackFlagAggregate;
+namespace SJZY.Track.Domain.Aggregates.TrackFlagAggregate;
///
/// 轨迹标记表
@@ -30,9 +30,9 @@ public class TrackFlagEntity : IFullAuditedBasicEntitys, IAggregateRoot
[SugarColumn(ColumnName = "SubSystemId")]
public int SubSystemId { get; set; }
- /////
- ///// 是否完结
- /////
- //[SugarColumn(ColumnName = "IsCompleted")]
- //public bool IsCompleted { get; set; }
+ ///
+ /// 是否广播
+ ///
+ [SugarColumn(ColumnName = "IsCompleted")]
+ public bool IsToMq { get; set; }
}
diff --git a/src/SJZY.Track.Domain/Aggregates/TrackStatusAggregate/TrackStatusEntity.cs b/src/SJZY.Track.Domain/Aggregates/TrackStatusAggregate/TrackStatusEntity.cs
index 4b13d3dd..bfc83c44 100644
--- a/src/SJZY.Track.Domain/Aggregates/TrackStatusAggregate/TrackStatusEntity.cs
+++ b/src/SJZY.Track.Domain/Aggregates/TrackStatusAggregate/TrackStatusEntity.cs
@@ -47,4 +47,10 @@ public class TrackStatusEntity : IFullAuditedBasicEntitys, IAggregateRoot
///
[SugarColumn(ColumnName = "IsCompleted")]
public bool IsCompleted { get; set; }
+
+ ///
+ /// 是否广播
+ ///
+ [SugarColumn(ColumnName = "IsCompleted")]
+ public bool IsToMq { get; set; }
}
diff --git a/src/SJZY.Track.Domain/Dtos/TrackContents/GetTrackContentDetailVO.cs b/src/SJZY.Track.Domain/Dtos/TrackContents/GetTrackContentDetailVO.cs
index a8489f9b..dc7a23db 100644
--- a/src/SJZY.Track.Domain/Dtos/TrackContents/GetTrackContentDetailVO.cs
+++ b/src/SJZY.Track.Domain/Dtos/TrackContents/GetTrackContentDetailVO.cs
@@ -1,4 +1,4 @@
-namespace SJZY.Track.Domain.Dtos.TrackContents;
+namespace SJZY.Track.Domain.Dtos.TrackContents;
public class GetTrackContentDetailVO
{
@@ -45,10 +45,10 @@ public class GetTrackContentDetailVO
///
/// 轨迹标记id
///
- public int TrackFlagId { get; set; }
+ public string? TrackFlagId { get; set; }
///
- /// 轨迹标记
+ /// 轨迹标记ids
///
- public string TrackFlag { get; set; }
+ public List? TrackFlagIds { get; set; }
}
diff --git a/src/SJZY.Track.Repository/Repositories/TrackContentRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackContentRepository.cs
index 3e885233..199af1f3 100644
--- a/src/SJZY.Track.Repository/Repositories/TrackContentRepository.cs
+++ b/src/SJZY.Track.Repository/Repositories/TrackContentRepository.cs
@@ -10,10 +10,6 @@ namespace SJZY.Track.Repository.Repositories;
public class TrackContentRepository : BasicRepository, ITrackContentRepository, IScopedDependency
{
- public TrackContentRepository()
- {
- }
-
///
/// 获取轨迹内容明细
///
@@ -23,10 +19,9 @@ public class TrackContentRepository : BasicRepository, ITrac
{
var detail = await Context.Queryable()
.LeftJoin((a, b) => a.TrackStatusId == b.Id && b.IsDeleted == false)
- .LeftJoin((a, b, c) => a.TrackFlagId == c.Id && c.IsDeleted == false)
- .LeftJoin((a, b, c, d) => a.SubSystemId == d.Id && d.IsDeleted == false)
- .Where((a, b, c, d) => a.Id == id)
- .Select((a, b, c, d) => new GetTrackContentDetailVO
+ .LeftJoin((a, b, d) => a.SubSystemId == d.Id && d.IsDeleted == false)
+ .Where((a, b, d) => a.Id == id)
+ .Select((a, b, d) => new GetTrackContentDetailVO
{
Id = a.Id,
SubSystemId = a.SubSystemId,
@@ -37,8 +32,8 @@ public class TrackContentRepository : BasicRepository, ITrac
Content = a.Content,
EnContent = a.EnContent,
TrackFlagId = a.TrackFlagId,
- TrackFlag = c.Name
})
+ .Mapper(x => { x.TrackFlagIds = x.TrackFlagId?.Split(',').Select(int.Parse).ToList(); })
.FirstAsync();
return detail;
}
@@ -50,23 +45,21 @@ public class TrackContentRepository : BasicRepository, ITrac
///
public async Task> GetPageTrackContent(GetPageTrackContentVO input)
{
- UnifyPageResultDto pagedList = new UnifyPageResultDto();
- pagedList = await Context.Queryable()
+ var pagedList = await Context.Queryable()
.LeftJoin((a, b) => a.TrackStatusId == b.Id && b.IsDeleted == false)
- .LeftJoin((a, b, c) => a.TrackFlagId == c.Id && c.IsDeleted == false)
- .LeftJoin((a, b, c, d) => a.SubSystemId == d.Id && d.IsDeleted == false)
- .LeftJoin((a, b, c, d, e) => a.CreateUserId == e.Id && e.IsDeleted == false)
- .LeftJoin((a, b, c, d, e, f) => a.UpdateUserId == f.Id && f.IsDeleted == false)
- .WhereIF(input.SubSystemId > 0, (a, b, c, d, e, f) => a.SubSystemId == input.SubSystemId)
+ .LeftJoin((a, b, d) => a.SubSystemId == d.Id && d.IsDeleted == false)
+ .LeftJoin((a, b, d, e) => a.CreateUserId == e.Id && e.IsDeleted == false)
+ .LeftJoin((a, b, d, e, f) => a.UpdateUserId == f.Id && f.IsDeleted == false)
+ .WhereIF(input.SubSystemId > 0, (a, b, d, e, f) => a.SubSystemId == input.SubSystemId)
.WhereIF(!input.Keywords.IsNullOrWhiteSpace(),
- (a, b, c, d, e, f) => a.Code.Contains(input.Keywords) || a.Content.Contains(input.Keywords)
- || a.EnContent.Contains(input.Keywords))
- .WhereIF(input.TrackStatusId > 0, (a, b, c, d, e, f) => a.TrackStatusId == input.TrackStatusId)
- .OrderByIF(input.SelectIds.IsNullOrEmpty(), (a, b, c, d, e, f) => a.CreateTime, OrderByType.Desc)
+ (a, b, d, e, f) => a.Code.Contains(input.Keywords) || a.Content.Contains(input.Keywords)
+ || a.EnContent.Contains(input.Keywords))
+ .WhereIF(input.TrackStatusId > 0, (a, b, d, e, f) => a.TrackStatusId == input.TrackStatusId)
+ .OrderByIF(input.SelectIds.IsNullOrEmpty(), (a, b, d, e, f) => a.CreateTime, OrderByType.Desc)
.OrderByIF(!input.SelectIds.IsNullOrEmpty(),
- (a, b, c, d, e, f) => SqlFunc.IIF(input.SelectIds.Contains(a.Id), SqlFunc.DateAdd(SqlFunc.GetDate(), 1),
+ (a, b, d, e, f) => SqlFunc.IIF(input.SelectIds.Contains(a.Id), SqlFunc.DateAdd(SqlFunc.GetDate(), 1),
a.CreateTime), OrderByType.Desc)
- .Select((a, b, c, d, e, f) => new GetTrackContentListVO
+ .Select((a, b, d, e, f) => new GetTrackContentListVO
{
Id = a.Id,
SubSystem = d.CnName,
@@ -78,7 +71,9 @@ public class TrackContentRepository : BasicRepository, ITrac
.Return("干线")
.ElseIF(b.Node == 4).Return("派送").ElseIF(b.Node == 5).Return("其他")
.End(""),
- TrackFlag = c.Name,
+ TrackFlag = SqlFunc.Subqueryable()
+ .Where(x => SqlFunc.SplitIn(a.TrackFlagId, x.Id.ToString()))
+ .SelectStringJoin(x => x.Name, ","),
CreateTime = a.CreateTime,
CreateUser = e.Name,
UpdateTime = a.UpdateTime,
diff --git a/src/SJZY.Track.Repository/Repositories/TrackTemplateRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackTemplateRepository.cs
index 60302e81..91b54841 100644
--- a/src/SJZY.Track.Repository/Repositories/TrackTemplateRepository.cs
+++ b/src/SJZY.Track.Repository/Repositories/TrackTemplateRepository.cs
@@ -78,23 +78,23 @@ public class TrackTemplateRepository : BasicRepository, ITr
.LeftJoin((templateContent, trackContent, trackStatus, enumValue) =>
enumValue.Property == EnumPropertyEnums.节点.GetDescription() && trackStatus.Node == enumValue.Enumkey &&
!enumValue.IsDeleted)
- .LeftJoin((templateContent, trackContent, trackStatus, enumValue, trackFlag) =>
- trackContent.TrackFlagId == trackFlag.Id && !trackFlag.IsDeleted)
- .LeftJoin((templateContent, trackContent, trackStatus, enumValue, trackFlag, createUser) =>
+ .LeftJoin((templateContent, trackContent, trackStatus, enumValue, createUser) =>
templateContent.CreateUserId == createUser.Id && !createUser.IsDeleted)
.LeftJoin(
- (templateContent, trackContent, trackStatus, enumValue, trackFlag, createUser, updateUser) =>
+ (templateContent, trackContent, trackStatus, enumValue, createUser, updateUser) =>
templateContent.UpdateUserId == updateUser.Id && !updateUser.IsDeleted)
.Filter(null, true)
.Where(templateContent => input.TrackTemplateIds.Contains(templateContent.TrackTemplateId) &&
!templateContent.IsDeleted)
- .Select((templateContent, trackContent, trackStatus, enumValue, trackFlag, createUser, updateUser) =>
+ .Select((templateContent, trackContent, trackStatus, enumValue, createUser, updateUser) =>
new GetTrackTemplateContentPageOutputVO
{
Id = templateContent.Id,
TrackStatus = trackStatus.Status,
Node = enumValue.Disp,
- TrackFlag = trackFlag.Name,
+ TrackFlag = SqlFunc.Subqueryable()
+ .Where(x => SqlFunc.Contains(trackContent.TrackFlagId, x.Id.ToString()))
+ .SelectStringJoin(x => x.Name, ","),
CreateTime = templateContent.CreateTime,
CreateUser = createUser.Name,
UpdateTime = templateContent.UpdateTime,