|
@@ -8,6 +8,8 @@ using Hotline.Share.Dtos.Quality;
|
|
|
using Org.BouncyCastle.Utilities;
|
|
|
using Polly.Caching;
|
|
|
using SqlSugar;
|
|
|
+using Hotline.Settings;
|
|
|
+using XF.Utility.EnumExtensions;
|
|
|
|
|
|
namespace Hotline.Api.Controllers.Bi
|
|
|
{
|
|
@@ -20,22 +22,24 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
}
|
|
|
|
|
|
[HttpGet("data_list")]
|
|
|
- public async Task<PagedDto<Object>> DataList([FromQuery] QualityBiDataListDto dto)
|
|
|
+ public async Task<PagedDto<KnowledgeBiDataListVo>> DataList([FromQuery] QualityBiDataListDto dto)
|
|
|
{
|
|
|
var total = 0;
|
|
|
- var query = _knowledgeRepository.Queryable()
|
|
|
- .Includes(x => x.SourceOrganize)
|
|
|
- .WhereIF(dto.CreationTimeStart.HasValue, x => x.CreationTime >= dto.CreationTimeStart)
|
|
|
- .WhereIF(dto.CreationTimeEnd.HasValue, x => x.CreationTime <= dto.CreationTimeEnd)
|
|
|
- .Select(x => new {
|
|
|
- OrgName = x.SourceOrganize.Name,
|
|
|
+ var query = _knowledgeRepository.Queryable(false,true,false)
|
|
|
+ .LeftJoin<SystemOrganize>((x,o)=>x.SourceOrganizeId == o.Id)
|
|
|
+ .WhereIF(dto.CreationTimeStart.HasValue, (x,o) => x.CreationTime >= dto.CreationTimeStart)
|
|
|
+ .WhereIF(dto.CreationTimeEnd.HasValue, (x,o)=> x.CreationTime <= dto.CreationTimeEnd)
|
|
|
+ .GroupBy((x,o) => new { x.SourceOrganizeId, o.Name, o.OrgType })
|
|
|
+ .Select((x,o) => new KnowledgeBiDataListVo
|
|
|
+ {
|
|
|
+ OrgName = o.Name,
|
|
|
OrgId = x.SourceOrganizeId,
|
|
|
- OrgType = x.SourceOrganize.OrgTypeText,
|
|
|
- AddNum = SqlFunc.MappingColumn(default(int),"SUM(CASE WHEN \"Status\" =3 THEN 1 ELSE 0 END)"),
|
|
|
- DeleteNum = SqlFunc.MappingColumn(default(int), "SUM(CASE WHEN \"IsDeleted\" ='t' THEN 1 ELSE 0 END)"),
|
|
|
- SendBackNum = SqlFunc.MappingColumn(default(int), "SUM(CASE WHEN \"Status\" =5 THEN 1 ELSE 0 END)"),
|
|
|
- PassNum = SqlFunc.MappingColumn(default(int), "SUM(CASE WHEN \"Status\" =3 THEN 1 ELSE 0 END)")
|
|
|
- });
|
|
|
+ OrgType = o.OrgType,
|
|
|
+ AddNum = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status == EKnowledgeStatus.OnShelf, 1, 0)),
|
|
|
+ DeleteNum = SqlFunc.AggregateSum(SqlFunc.IIF(x.IsDeleted, 1, 0)),
|
|
|
+ SendBackNum = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status == EKnowledgeStatus.Revert, 1, 0)),
|
|
|
+ PassNum = SqlFunc.AggregateSum(SqlFunc.IIF(x.Status == EKnowledgeStatus.OnShelf, 1, 0))
|
|
|
+ }).MergeTable();
|
|
|
switch (dto.SortField)
|
|
|
{
|
|
|
case 0:
|
|
@@ -51,9 +55,9 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
query = dto.SortRule == 0 ? query.OrderBy(x => x.PassNum) : query.OrderByDescending(x => x.PassNum);
|
|
|
break;
|
|
|
}
|
|
|
- query.GroupBy(x => x.OrgId);
|
|
|
+ var sql = query.ToSql();
|
|
|
var items = query.ToPageList(dto.PageIndex, dto.PageSize,ref total);
|
|
|
- return new PagedDto<Object>(total, items);
|
|
|
+ return new PagedDto<KnowledgeBiDataListVo>(total, items);
|
|
|
}
|
|
|
}
|
|
|
}
|