|
@@ -613,23 +613,24 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
/// <param name="LineNum"></param>
|
|
|
/// <returns></returns>
|
|
|
[HttpGet("visit-org-satisfaction-statistics")]
|
|
|
- public async Task VisitAndOrgSatisfactionStatistics(DateTime StartDate, DateTime EndDate, string OrgName, int TypeId, string? LineNum)
|
|
|
+ public async Task<List<VisitAndOrgSatisfactionStatisticsDto>> VisitAndOrgSatisfactionStatistics(DateTime StartDate, DateTime EndDate, string OrgName, int TypeId, string? LineNum)
|
|
|
{
|
|
|
EndDate = EndDate.AddDays(1).AddSeconds(-1);
|
|
|
var list = await _orderVisitDetailRepository.Queryable()
|
|
|
.Includes(x => x.OrderVisit)
|
|
|
- .Where(x => x.OrderVisit.VisitTime >= StartDate && x.OrderVisit.VisitTime <= EndDate && x.VisitTarget == EVisitTarget.Org)
|
|
|
+ .Where(x => x.OrderVisit.VisitTime >= StartDate && x.OrderVisit.VisitTime <= EndDate && x.VisitTarget == EVisitTarget.Org && x.OrderVisit.VisitState == EVisitState.Visited)
|
|
|
.WhereIF(!string.IsNullOrEmpty(OrgName), x => x.VisitOrgName.Contains(OrgName))
|
|
|
.GroupBy(x => new { x.VisitOrgCode, x.VisitOrgName })
|
|
|
- .Select(x => new
|
|
|
- {
|
|
|
+ .Select(x => new VisitAndOrgSatisfactionStatisticsDto()
|
|
|
+ {
|
|
|
OrgName = x.VisitOrgName,
|
|
|
OrgCode = x.VisitOrgCode,
|
|
|
-
|
|
|
+ TotalSumCount = SqlFunc.AggregateCount(x.VisitOrgCode),
|
|
|
+ VerySatisfiedCount = SqlFunc.AggregateSum(SqlFunc.IIF(SqlFunc.JsonListObjectAny(x.OrgProcessingResults,"key","5"),1,0)),//非常满意数
|
|
|
})
|
|
|
.ToListAsync();
|
|
|
|
|
|
-
|
|
|
+ return list;
|
|
|
}
|
|
|
}
|
|
|
}
|