|
@@ -196,7 +196,7 @@ namespace Hotline.Api.Controllers.Bigscreen
|
|
|
{
|
|
|
EndTime = EndTime.AddDays(1).AddSeconds(-1);
|
|
|
var list = await _orderRepository.Queryable(false, false, false).Where(x =>
|
|
|
- x.StartTime >= StartTime && x.StartTime <= EndTime && x.Status > EOrderStatus.Handling && !string.IsNullOrEmpty(x.AcceptType))
|
|
|
+ x.StartTime >= StartTime && x.StartTime <= EndTime && x.Status > EOrderStatus.WaitForAccept && !string.IsNullOrEmpty(x.AcceptType))
|
|
|
.GroupBy(x => x.AcceptType)
|
|
|
.Select(x => new OrderTypeHandleStatisticsDto
|
|
|
{
|
|
@@ -359,7 +359,9 @@ namespace Hotline.Api.Controllers.Bigscreen
|
|
|
AcceptedCount = SqlFunc.AggregateCount(it.AreaCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6"))),
|
|
|
CompletionCount = SqlFunc.AggregateSum(SqlFunc.IIF(it.Status >= EOrderStatus.Filed, 1, 0))
|
|
|
}).MergeTable()
|
|
|
- .Where(x => x.AreaCode != "519800" && x.AreaCode != "519900").OrderByDescending(it => it.AcceptedCount).ToListAsync();
|
|
|
+ .WhereIF(_appOptions.Value.IsZiGong == false, x => x.AreaCode != "519800" && x.AreaCode != "519900")
|
|
|
+ .WhereIF(_appOptions.Value.IsZiGong == true, x => x.AreaCode != "519900")
|
|
|
+ .OrderByDescending(it => it.AcceptedCount).ToListAsync();
|
|
|
return list;
|
|
|
}
|
|
|
|
|
@@ -529,74 +531,74 @@ namespace Hotline.Api.Controllers.Bigscreen
|
|
|
/// <returns></returns>
|
|
|
[AllowAnonymous]
|
|
|
[HttpGet("ordervisit-orgsatisfaction-rank")]
|
|
|
- public async Task<List<OrderVisitOrgSatisfactionRankDto>> OrderVisitOrgSatisfactionRank(DateTime StartTime, DateTime EndTime)
|
|
|
- {
|
|
|
- var list = new List<OrderVisitOrgSatisfactionRankDto>();
|
|
|
-
|
|
|
- if (_appOptions.Value.IsLuZhou)
|
|
|
- {
|
|
|
- list = await _orderVisitDetailRepository.Queryable()
|
|
|
- .LeftJoin<OrderVisit>((x,ov)=>x.VisitId == ov.Id)
|
|
|
- .Where((x, ov) => ov.VisitTime >= StartTime && ov.VisitTime <= EndTime && x.VisitTarget == EVisitTarget.Org &&
|
|
|
- x.VisitOrgCode.Length >= 6 && ov.VisitState == EVisitState.Visited)
|
|
|
- .GroupBy((x, ov) => new
|
|
|
- {
|
|
|
- VisitOrgCode = x.VisitOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6"))
|
|
|
- })
|
|
|
- .Select((x, ov) => new OrderVisitOrgSatisfactionRankDto()
|
|
|
- {
|
|
|
- VisitOrgCode = x.VisitOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6")),
|
|
|
- SatisfiedCount =
|
|
|
- SqlFunc.AggregateSum(SqlFunc.IIF(
|
|
|
- SqlFunc.JsonField(x.OrgProcessingResults, "Key") != "1" && SqlFunc.JsonField(x.OrgProcessingResults, "Key") != "2", 1,
|
|
|
- 0)),
|
|
|
- VisitCount = SqlFunc.AggregateCount(x.VisitOrgName)
|
|
|
- }).MergeTable()
|
|
|
- .LeftJoin<SystemOrganize>((x, so) => x.VisitOrgCode == so.Id)
|
|
|
- .Select((x, so) => new OrderVisitOrgSatisfactionRankDto()
|
|
|
- {
|
|
|
- VisitOrgCode = x.VisitOrgCode,
|
|
|
- VisitOrgName = so.Name,
|
|
|
- SatisfiedCount = x.SatisfiedCount,
|
|
|
- VisitCount = x.VisitCount
|
|
|
- })
|
|
|
- .OrderByDescending(x => x.SatisfiedCount).Take(10).ToListAsync();
|
|
|
- list = list.OrderByDescending(x => x.SatisfiedRate).ToList();
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- list = await _orderVisitDetailRepository.Queryable()
|
|
|
- .Includes(x => x.OrderVisit)
|
|
|
- .Where(x => x.OrderVisit.VisitTime >= StartTime && x.OrderVisit.VisitTime <= EndTime && x.VisitTarget == EVisitTarget.Org &&
|
|
|
- x.VisitOrgCode.Length >= 6 && x.OrderVisit.VisitState == EVisitState.Visited)
|
|
|
- .GroupBy(x => new
|
|
|
- {
|
|
|
- VisitOrgCode = x.VisitOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6")),
|
|
|
- x.VisitOrgName
|
|
|
- })
|
|
|
- .Select(x => new OrderVisitOrgSatisfactionRankDto()
|
|
|
- {
|
|
|
- VisitOrgCode = x.VisitOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6")),
|
|
|
- VisitOrgName = x.VisitOrgName,
|
|
|
- SatisfiedCount =
|
|
|
- SqlFunc.AggregateSum(SqlFunc.IIF(
|
|
|
- SqlFunc.JsonField(x.OrgProcessingResults, "Key") != "1" && SqlFunc.JsonField(x.OrgProcessingResults, "Key") != "2", 1,
|
|
|
- 0)),
|
|
|
- VisitCount = SqlFunc.AggregateCount(x.VisitOrgName)
|
|
|
- }).MergeTable().OrderByDescending(x => x.SatisfiedCount).Take(10).ToListAsync();
|
|
|
- list = list.OrderByDescending(x => x.SatisfiedRate).ToList();
|
|
|
- }
|
|
|
- return list;
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 占比分析
|
|
|
- /// </summary>
|
|
|
- /// <param name="StartTime"></param>
|
|
|
- /// <param name="EndTime"></param>
|
|
|
- /// <param name="IsSource"></param>
|
|
|
- /// <returns></returns>
|
|
|
- [AllowAnonymous]
|
|
|
+ public async Task<List<OrderVisitOrgSatisfactionRankDto>> OrderVisitOrgSatisfactionRank(DateTime StartTime, DateTime EndTime)
|
|
|
+ {
|
|
|
+ var list = new List<OrderVisitOrgSatisfactionRankDto>();
|
|
|
+
|
|
|
+ if (_appOptions.Value.IsLuZhou)
|
|
|
+ {
|
|
|
+ list = await _orderVisitDetailRepository.Queryable()
|
|
|
+ .LeftJoin<OrderVisit>((x, ov) => x.VisitId == ov.Id)
|
|
|
+ .Where((x, ov) => ov.VisitTime >= StartTime && ov.VisitTime <= EndTime && x.VisitTarget == EVisitTarget.Org &&
|
|
|
+ x.VisitOrgCode.Length >= 6 && ov.VisitState == EVisitState.Visited)
|
|
|
+ .GroupBy((x, ov) => new
|
|
|
+ {
|
|
|
+ VisitOrgCode = x.VisitOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6"))
|
|
|
+ })
|
|
|
+ .Select((x, ov) => new OrderVisitOrgSatisfactionRankDto()
|
|
|
+ {
|
|
|
+ VisitOrgCode = x.VisitOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6")),
|
|
|
+ SatisfiedCount =
|
|
|
+ SqlFunc.AggregateSum(SqlFunc.IIF(
|
|
|
+ SqlFunc.JsonField(x.OrgProcessingResults, "Key") != "1" && SqlFunc.JsonField(x.OrgProcessingResults, "Key") != "2", 1,
|
|
|
+ 0)),
|
|
|
+ VisitCount = SqlFunc.AggregateCount(x.VisitOrgName)
|
|
|
+ }).MergeTable()
|
|
|
+ .LeftJoin<SystemOrganize>((x, so) => x.VisitOrgCode == so.Id)
|
|
|
+ .Select((x, so) => new OrderVisitOrgSatisfactionRankDto()
|
|
|
+ {
|
|
|
+ VisitOrgCode = x.VisitOrgCode,
|
|
|
+ VisitOrgName = so.Name,
|
|
|
+ SatisfiedCount = x.SatisfiedCount,
|
|
|
+ VisitCount = x.VisitCount
|
|
|
+ })
|
|
|
+ .OrderByDescending(x => x.SatisfiedCount).Take(10).ToListAsync();
|
|
|
+ list = list.OrderByDescending(x => x.SatisfiedRate).ToList();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ list = await _orderVisitDetailRepository.Queryable()
|
|
|
+ .Includes(x => x.OrderVisit)
|
|
|
+ .Where(x => x.OrderVisit.VisitTime >= StartTime && x.OrderVisit.VisitTime <= EndTime && x.VisitTarget == EVisitTarget.Org &&
|
|
|
+ x.VisitOrgCode.Length >= 6 && x.OrderVisit.VisitState == EVisitState.Visited)
|
|
|
+ .GroupBy(x => new
|
|
|
+ {
|
|
|
+ VisitOrgCode = x.VisitOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6")),
|
|
|
+ x.VisitOrgName
|
|
|
+ })
|
|
|
+ .Select(x => new OrderVisitOrgSatisfactionRankDto()
|
|
|
+ {
|
|
|
+ VisitOrgCode = x.VisitOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6")),
|
|
|
+ VisitOrgName = x.VisitOrgName,
|
|
|
+ SatisfiedCount =
|
|
|
+ SqlFunc.AggregateSum(SqlFunc.IIF(
|
|
|
+ SqlFunc.JsonField(x.OrgProcessingResults, "Key") != "1" && SqlFunc.JsonField(x.OrgProcessingResults, "Key") != "2", 1,
|
|
|
+ 0)),
|
|
|
+ VisitCount = SqlFunc.AggregateCount(x.VisitOrgName)
|
|
|
+ }).MergeTable().OrderByDescending(x => x.SatisfiedCount).Take(10).ToListAsync();
|
|
|
+ list = list.OrderByDescending(x => x.SatisfiedRate).ToList();
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 占比分析
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="StartTime"></param>
|
|
|
+ /// <param name="EndTime"></param>
|
|
|
+ /// <param name="IsSource"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [AllowAnonymous]
|
|
|
[HttpGet("order-source-accepttype-statistics")]
|
|
|
public async Task<List<OrderSourceAndAcceptTtoeStatisticsDto>> OrderSourceAndAcceptTtoeStatistics(DateTime StartTime, DateTime EndTime,
|
|
|
bool IsSource)
|
|
@@ -716,7 +718,7 @@ namespace Hotline.Api.Controllers.Bigscreen
|
|
|
{
|
|
|
var list = await _orderRepository
|
|
|
.Queryable(false, false, false)
|
|
|
- .Where(x => x.Source==ESource.Police110 && x.CreationTime.Date == DateTime.Now.Date)
|
|
|
+ .Where(x => x.Source == ESource.Police110 && x.CreationTime.Date == DateTime.Now.Date)
|
|
|
.OrderByDescending(x => x.CreationTime)
|
|
|
.Take(50)
|
|
|
.ToListAsync();
|