diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetPageTrackTemplateListInput.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetPageTrackTemplateListInput.cs
new file mode 100644
index 00000000..d193eb8e
--- /dev/null
+++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetPageTrackTemplateListInput.cs
@@ -0,0 +1,24 @@
+namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
+
+public class GetPageTrackTemplateListInput : PageInfoInput
+{
+ ///
+ /// 子系统id
+ ///
+ public int SubSystemId { get; set; }
+
+ ///
+ /// 客户id
+ ///
+ public int? CustomerId { get; set; }
+
+ ///
+ /// 模版分类
+ ///
+ public int? TemplateType { get; set; }
+
+ ///
+ /// 模板code
+ ///
+ public string? TemplateCode { get; set; }
+}
diff --git a/src/SJZY.Track.Application/AutoMapper/TrackTemplateAutoMapperProfile.cs b/src/SJZY.Track.Application/AutoMapper/TrackTemplateAutoMapperProfile.cs
index 850ff421..f6e6b53b 100644
--- a/src/SJZY.Track.Application/AutoMapper/TrackTemplateAutoMapperProfile.cs
+++ b/src/SJZY.Track.Application/AutoMapper/TrackTemplateAutoMapperProfile.cs
@@ -20,6 +20,8 @@ public class TrackTemplateAutoMapperProfile : Profile
CreateMap(MemberList.None);
CreateMap, UnifyPageResultDto>(MemberList
.None);
+ CreateMap(MemberList.None);
+ CreateMap, UnifyPageResultDto>(MemberList.None);
CreateMap(MemberList.None);
CreateMap(MemberList.None);
diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackTemplateService.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackTemplateService.cs
index 838f0397..ae02e06e 100644
--- a/src/SJZY.Track.Application/Services/ProvideServices/TrackTemplateService.cs
+++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackTemplateService.cs
@@ -33,4 +33,18 @@ public class TrackTemplateService : ApplicationService, ITrackTemplateService
var res = ObjectMapper.Map, List>(templates);
return res;
}
+
+ ///
+ /// 分页获取轨迹模版列表
+ ///
+ ///
+ ///
+ [HttpPost("Template/GetTrackTemplateListByPage")]
+ public async Task> GetTrackTemplateListByPageAsync(GetPageTrackTemplateListInput input)
+ {
+ var inputVo = ObjectMapper.Map(input);
+ var templates = await _trackTemplateRepository.GetPageTrackTemplateListAsync(inputVo);
+ var res = ObjectMapper.Map, UnifyPageResultDto>(templates);
+ return res;
+ }
}
diff --git a/src/SJZY.Track.Domain/Aggregates/TrackTemplateAggregate/ITrackTemplateRepository.cs b/src/SJZY.Track.Domain/Aggregates/TrackTemplateAggregate/ITrackTemplateRepository.cs
index db202083..efae67b2 100644
--- a/src/SJZY.Track.Domain/Aggregates/TrackTemplateAggregate/ITrackTemplateRepository.cs
+++ b/src/SJZY.Track.Domain/Aggregates/TrackTemplateAggregate/ITrackTemplateRepository.cs
@@ -45,5 +45,6 @@ public interface ITrackTemplateRepository : IBasicRepository> whereExpression);
Task> GetTrackTemplateListAsync(GetTrackTemplateListInputVo input);
+ Task> GetPageTrackTemplateListAsync(GetPageTrackTemplateListInputVo input);
Task> GetContentByTemplateCodes(string[] codes, int systemId);
}
diff --git a/src/SJZY.Track.Domain/Dtos/TrackTemplate/GetPageTrackTemplateListInputVo.cs b/src/SJZY.Track.Domain/Dtos/TrackTemplate/GetPageTrackTemplateListInputVo.cs
new file mode 100644
index 00000000..b6e253a0
--- /dev/null
+++ b/src/SJZY.Track.Domain/Dtos/TrackTemplate/GetPageTrackTemplateListInputVo.cs
@@ -0,0 +1,24 @@
+namespace SJZY.Track.Domain.Dtos.TrackTemplate;
+
+public class GetPageTrackTemplateListInputVo :PageInfoInput
+{
+ ///
+ /// 子系统id
+ ///
+ public int SubSystemId { get; set; }
+
+ ///
+ /// 客户id
+ ///
+ public int? CustomerId { get; set; }
+
+ ///
+ /// 模版分类
+ ///
+ public int? TemplateType { get; set; }
+
+ ///
+ /// 模板code
+ ///
+ public string? TemplateCode { get; set; }
+}
diff --git a/src/SJZY.Track.Repository/Repositories/TrackTemplateRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackTemplateRepository.cs
index 24bdc7ea..c7f7c2c4 100644
--- a/src/SJZY.Track.Repository/Repositories/TrackTemplateRepository.cs
+++ b/src/SJZY.Track.Repository/Repositories/TrackTemplateRepository.cs
@@ -228,6 +228,42 @@ public class TrackTemplateRepository : BasicRepository, ITr
return templates;
}
+ public async Task> GetPageTrackTemplateListAsync(GetPageTrackTemplateListInputVo input)
+ {
+ var templates = await Context.Queryable()
+ .Where(x => x.SubSystemId == input.SubSystemId)
+ .WhereIF(input.CustomerId.HasValue, x => x.CustomerId == input.CustomerId)
+ .WhereIF(input.TemplateType.HasValue, x => x.CategoryId == input.TemplateType)
+ .WhereIF(!input.TemplateCode.IsNullOrWhiteSpace(), x => x.Code == input.TemplateCode)
+ .Select(x => new TrackTemplateOutputVo
+ {
+ Id = x.Id,
+ TemplateName = x.Name,
+ TemplateCode = x.Code,
+ })
+ .ToListAsync();
+
+ if (templates == default) return new UnifyPageResultDto();
+ var templateIds = templates.Select(x => x.Id).ToArray();
+ var contents = await Context.Queryable()
+ .LeftJoin((a, b) => a.TrackContentId == b.Id)
+ .LeftJoin((a, b, c) => b.TrackStatusId == c.Id)
+ .LeftJoin((a, b, c, d) => c.Node == d.Id)
+ .Where(a => templateIds.Contains(a.TrackTemplateId))
+ .Select((a, b, c, d) => new TemplateContentDtoVo
+ {
+ TemplateId = a.TrackTemplateId,
+ Code = b.Code,
+ ContentCn = b.Content,
+ ContentEn = b.EnContent,
+ Status = c.Status,
+ Node = d.NodeName
+ })
+ .ToPagedListAsync(input.PageIndex, input.PageSize);
+
+ return contents;
+ }
+
public async Task> GetContentByTemplateCodes(string[] codes, int systemId)
{
var sql = @$"