|
@@ -68,13 +68,13 @@ namespace Hotline.Api.Controllers
|
|
public async Task<Object> GetHomeData()
|
|
public async Task<Object> GetHomeData()
|
|
{
|
|
{
|
|
var tadayTime = DateTime.Now.ToString("yyyy-MM-dd");
|
|
var tadayTime = DateTime.Now.ToString("yyyy-MM-dd");
|
|
- var orderQuery = _orderRepository.Queryable(false, false, false)
|
|
|
|
- .Includes(d => d.Workflow, x => x.Steps);
|
|
|
|
//中心
|
|
//中心
|
|
if (_sessionContext.OrgIsCenter)
|
|
if (_sessionContext.OrgIsCenter)
|
|
{
|
|
{
|
|
- //今日来电
|
|
|
|
- var tadayCalls = await _trCallRecordRepository.Queryable()
|
|
|
|
|
|
+ var orderQuery = _orderRepository.Queryable(false, false, false)
|
|
|
|
+ .Includes(o => o.Workflow, w => w.Steps);
|
|
|
|
+ //今日来电
|
|
|
|
+ var tadayCalls = await _trCallRecordRepository.Queryable()
|
|
.Where(x => x.CallDirection == Share.Enums.CallCenter.ECallDirection.In && tadayTime.Equals(x.CreatedTime.ToString("yyyy-MM-dd"))).ToListAsync();
|
|
.Where(x => x.CallDirection == Share.Enums.CallCenter.ECallDirection.In && tadayTime.Equals(x.CreatedTime.ToString("yyyy-MM-dd"))).ToListAsync();
|
|
var callNum = tadayCalls.Count();
|
|
var callNum = tadayCalls.Count();
|
|
var validCallNum = tadayCalls.Where(x => x.Duration > 0 || x.QueueTims > 0 || x.RingTimes > 0).Count();
|
|
var validCallNum = tadayCalls.Where(x => x.Duration > 0 || x.QueueTims > 0 || x.RingTimes > 0).Count();
|
|
@@ -83,26 +83,43 @@ namespace Hotline.Api.Controllers
|
|
var answeredRate = validCallNum > 0 ? (answeredNum / validCallNum * 100) + "%" : "100%";
|
|
var answeredRate = validCallNum > 0 ? (answeredNum / validCallNum * 100) + "%" : "100%";
|
|
//今日受理工单
|
|
//今日受理工单
|
|
var tadayOrders = await orderQuery
|
|
var tadayOrders = await orderQuery
|
|
- .Where(x => tadayTime.Equals(x.CreationTime.ToString("yyyy-MM-dd"))).ToListAsync();
|
|
|
|
|
|
+ .Where(o => tadayTime.Equals(o.CreationTime.ToString("yyyy-MM-dd"))).ToListAsync();
|
|
var orderNum = tadayOrders.Count();
|
|
var orderNum = tadayOrders.Count();
|
|
- var directlyNum = tadayOrders.Where(x=> x.ProcessType == Share.Enums.Order.EProcessType.Zhiban).Count();
|
|
|
|
|
|
+ var directlyNum = tadayOrders.Where(o=> o.ProcessType == Share.Enums.Order.EProcessType.Zhiban).Count();
|
|
return new { CallNum = callNum, ValidCallNum = validCallNum, AnsweredNum = answeredNum, AnsweredRate = answeredRate, OrderNum = orderNum, DirectlyNum = directlyNum };
|
|
return new { CallNum = callNum, ValidCallNum = validCallNum, AnsweredNum = answeredNum, AnsweredRate = answeredRate, OrderNum = orderNum, DirectlyNum = directlyNum };
|
|
}
|
|
}
|
|
//部门
|
|
//部门
|
|
//今日待办
|
|
//今日待办
|
|
var time = DateTime.Parse(tadayTime);
|
|
var time = DateTime.Parse(tadayTime);
|
|
- var handleStatuses = new[] { EWorkflowStepStatus.WaitForAccept, EWorkflowStepStatus.WaitForHandle };
|
|
|
|
- var tasksOrderQuery = orderQuery.Where(d => d.Workflow.Steps.Any(x => handleStatuses.Contains(x.Status)));
|
|
|
|
- var tasksOkNum = await tasksOrderQuery.Where(d => SqlFunc.JsonListObjectAny(d.Workflow.HandlerUsers, "Key", _sessionContext.RequiredUserId) && d.Workflow.ExpiredTime > time).CountAsync();
|
|
|
|
- var tasksOkOrgNum = await tasksOrderQuery.Where(d => SqlFunc.JsonListObjectAny(d.Workflow.HandlerOrgs, "Key", _sessionContext.RequiredOrgId) && d.Workflow.ExpiredTime > time).CountAsync();
|
|
|
|
- //今日已办
|
|
|
|
- var handleOrderQuery = orderQuery.Where(d => d.Workflow.Steps.Any(x => new[] { EWorkflowStepStatus.Handled }.Contains(x.Status)));
|
|
|
|
- var handleNum = await handleOrderQuery.Where(d => d.Workflow.CurrentHandleTime != null && SqlFunc.JsonListObjectAny(d.Workflow.HandlerUsers, "Key", _sessionContext.RequiredUserId) && d.Workflow.CurrentHandleTime.Value.ToString("yyyy-MM-dd") == tadayTime).CountAsync();
|
|
|
|
- var handleOrgNum = await handleOrderQuery.Where(d => d.Workflow.CurrentHandleTime != null && SqlFunc.JsonListObjectAny(d.Workflow.HandlerOrgs, "Key", _sessionContext.RequiredOrgId) && d.Workflow.CurrentHandleTime.Value.ToString("yyyy-MM-dd") == tadayTime).CountAsync();
|
|
|
|
|
|
+ var tasksOkNum = await _orderRepository.Queryable(false, false, false)
|
|
|
|
+ .Includes(o => o.Workflow, w => w.Steps)
|
|
|
|
+ .Where(o => o.Workflow.Steps.Any(s => s.Status == EWorkflowStepStatus.Handled))
|
|
|
|
+ .Where(o => SqlFunc.JsonListObjectAny(o.Workflow.HandlerUsers, "Key", _sessionContext.RequiredUserId) && o.Workflow.ExpiredTime > time).CountAsync();
|
|
|
|
+ var tasksOkOrgNum = await _orderRepository.Queryable(false, false, false)
|
|
|
|
+ .Includes(o => o.Workflow, w => w.Steps)
|
|
|
|
+ .Where(o => o.Workflow.Steps.Any(s => s.Status == EWorkflowStepStatus.Handled))
|
|
|
|
+ .Where(o => SqlFunc.JsonListObjectAny(o.Workflow.HandlerOrgs, "Key", _sessionContext.RequiredOrgId) && o.Workflow.ExpiredTime > time).CountAsync();
|
|
|
|
+ //今日已办
|
|
|
|
+ var handleNum = await _orderRepository.Queryable(false, false, false)
|
|
|
|
+ .Includes(o => o.Workflow, w => w.Steps)
|
|
|
|
+ .Where(o => o.Workflow.Steps.Any(s => s.Status != EWorkflowStepStatus.Handled))
|
|
|
|
+ .Where(o => o.Workflow.CurrentHandleTime != null && SqlFunc.JsonListObjectAny(o.Workflow.HandlerUsers, "Key", _sessionContext.RequiredUserId) && o.Workflow.CurrentHandleTime.Value.ToString("yyyy-MM-dd") == tadayTime).CountAsync();
|
|
|
|
+ var handleOrgNum = await _orderRepository.Queryable(false, false, false)
|
|
|
|
+ .Includes(o => o.Workflow, w => w.Steps)
|
|
|
|
+ .Where(o => o.Workflow.Steps.Any(s => s.Status != EWorkflowStepStatus.Handled))
|
|
|
|
+ .Where(o => o.Workflow.CurrentHandleTime != null && SqlFunc.JsonListObjectAny(o.Workflow.HandlerOrgs, "Key", _sessionContext.RequiredOrgId) && o.Workflow.CurrentHandleTime.Value.ToString("yyyy-MM-dd") == tadayTime).CountAsync();
|
|
//部门超期
|
|
//部门超期
|
|
- var exceedTasksOkNum = await tasksOrderQuery.Where(d => SqlFunc.JsonListObjectAny(d.Workflow.HandlerOrgs, "Key", _sessionContext.RequiredOrgId) && d.ExpiredTime > DateTime.Now).CountAsync();
|
|
|
|
- var exceedHandleNum = await handleOrderQuery.Where(d => SqlFunc.JsonListObjectAny(d.Workflow.HandlerOrgs, "Key", _sessionContext.RequiredOrgId) && d.ExpiredTime > DateTime.Now).CountAsync();
|
|
|
|
|
|
+ var exceedTasksOkNum = await _orderRepository.Queryable(false, false, false)
|
|
|
|
+ .Includes(o => o.Workflow, w => w.Steps)
|
|
|
|
+ .Where(o => o.Workflow.Steps.Any(s => s.Status == EWorkflowStepStatus.Handled))
|
|
|
|
+ .Where(o => SqlFunc.JsonListObjectAny(o.Workflow.HandlerOrgs, "Key", _sessionContext.RequiredOrgId) && o.ExpiredTime > DateTime.Now).CountAsync();
|
|
|
|
+ var exceedHandleNum = await _orderRepository.Queryable(false, false, false)
|
|
|
|
+ .Includes(o => o.Workflow, w => w.Steps)
|
|
|
|
+ .Where(o => o.Workflow.Steps.Any(s => s.Status != EWorkflowStepStatus.Handled))
|
|
|
|
+ .Where(o => SqlFunc.JsonListObjectAny(o.Workflow.HandlerOrgs, "Key", _sessionContext.RequiredOrgId) && o.ExpiredTime > DateTime.Now).CountAsync();
|
|
return new { TasksOkNum = tasksOkNum, TasksOkOrgNum = tasksOkOrgNum, HandleNum = handleNum, HandleOrgNum = handleOrgNum, ExceedTasksOkNum = exceedTasksOkNum, ExceedHandleNum = exceedHandleNum };
|
|
return new { TasksOkNum = tasksOkNum, TasksOkOrgNum = tasksOkOrgNum, HandleNum = handleNum, HandleOrgNum = handleOrgNum, ExceedTasksOkNum = exceedTasksOkNum, ExceedHandleNum = exceedHandleNum };
|
|
|
|
+
|
|
|
|
+ return new { };
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|