|
@@ -1993,5 +1993,35 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
}
|
|
|
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 扭转信件统计
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public ISugarQueryable<OrderVisitJudeStatisticsRep> OrderVisitJudeStatistics(OrderVisitJudeStatisticsReq dto)
|
|
|
+ {
|
|
|
+ if (!dto.EndTime.HasValue)
|
|
|
+ {
|
|
|
+ dto.EndTime = dto.StartTime?.AddDays(1).AddSeconds(-1);
|
|
|
+ }
|
|
|
+ return _orderVisitRepository.Queryable()
|
|
|
+ .WhereIF(dto.StartTime.HasValue, x => x.VisitTime >= dto.StartTime)
|
|
|
+ .WhereIF(dto.EndTime.HasValue, x => x.VisitTime <= dto.EndTime)
|
|
|
+ .GroupBy(x => new { EmployeeId = x.EmployeeId, Name = x.Employee.Name })
|
|
|
+ .Select(x => new OrderVisitJudeStatisticsRep()
|
|
|
+ {
|
|
|
+ EmpId = x.EmployeeId,
|
|
|
+ EmpName = x.Employee.Name,
|
|
|
+ OrgJudeCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.OrgJudge.HasValue, 1, 0)), //部门扭转总件
|
|
|
+ OrgJudeApprovalingCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.OrgJudge.HasValue && x.JudgeState == EJudgeState.Judging, 1, 0)),
|
|
|
+ OrgJudeSuccessCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.OrgJudge.HasValue && x.JudgeState == EJudgeState.Agreed, 1, 0)),
|
|
|
+ OrgJudeFailCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.OrgJudge.HasValue && x.JudgeState == EJudgeState.UnAgreed, 1, 0)),
|
|
|
+ SeatJudeCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.SeatJudge.HasValue, 1, 0)),
|
|
|
+ SeatJudeApprovalingCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.SeatJudge.HasValue && x.JudgeState == EJudgeState.Judging, 1, 0)),
|
|
|
+ SeatJudeSuccessCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.SeatJudge.HasValue && x.JudgeState == EJudgeState.Agreed, 1, 0)),
|
|
|
+ SeatJudeFailCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.SeatJudge.HasValue && x.JudgeState == EJudgeState.UnAgreed, 1, 0))
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
#endregion
|
|
|
}
|