|
@@ -24,6 +24,7 @@ using Hotline.Configurations;
|
|
|
using Hotline.Share.Dtos.Order;
|
|
|
using System.Runtime.InteropServices;
|
|
|
using Lucene.Net.Util;
|
|
|
+using NPOI.Util;
|
|
|
|
|
|
namespace Hotline.Api.Controllers
|
|
|
{
|
|
@@ -98,126 +99,118 @@ namespace Hotline.Api.Controllers
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 首页基础数据
|
|
|
- /// </summary>
|
|
|
- /// <returns></returns>
|
|
|
- [HttpGet("home_data")]
|
|
|
- public async Task<Object> GetHomeData()
|
|
|
- {
|
|
|
- var tadayTime = DateTime.Now.ToString("yyyy-MM-dd");
|
|
|
- //中心
|
|
|
- if (_sessionContext.OrgIsCenter)
|
|
|
- {
|
|
|
- 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();
|
|
|
- // var callNum = tadayCalls.Count();
|
|
|
- // var validCallNum = tadayCalls.Where(x => x.Duration > 0 || x.QueueTims > 0 || x.RingTimes > 0).Count();
|
|
|
- // //今日接通率
|
|
|
- // var answeredNum = tadayCalls.Where(x => x.Duration > 0).Count();
|
|
|
- // var answeredRate = validCallNum > 0 ? Math.Round((double.Parse(answeredNum.ToString()) / double.Parse(validCallNum.ToString())) * 100, 2) + "%" : "-";
|
|
|
+ /// <summary>
|
|
|
+ /// 首页基础数据
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("home_data")]
|
|
|
+ public async Task<Object> GetHomeData()
|
|
|
+ {
|
|
|
+ var tadayTime = DateTime.Now.ToString("yyyy-MM-dd");
|
|
|
+ //中心
|
|
|
+ if (_sessionContext.OrgIsCenter)
|
|
|
+ {
|
|
|
+ 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();
|
|
|
+ // var callNum = tadayCalls.Count();
|
|
|
+ // var validCallNum = tadayCalls.Where(x => x.Duration > 0 || x.QueueTims > 0 || x.RingTimes > 0).Count();
|
|
|
+ // //今日接通率
|
|
|
+ // var answeredNum = tadayCalls.Where(x => x.Duration > 0).Count();
|
|
|
+ // var answeredRate = validCallNum > 0 ? Math.Round((double.Parse(answeredNum.ToString()) / double.Parse(validCallNum.ToString())) * 100, 2) + "%" : "-";
|
|
|
|
|
|
- int callNum = 0, validCallNum = 0, answeredNum = 0;
|
|
|
- var answeredRate = string.Empty;
|
|
|
- var today = DateTime.Today.Date;
|
|
|
- if (_appOptions.Value.GetDefaultAppScopeConfiguration().CallCenterType == AppDefaults.CallCenterType.TianRun)
|
|
|
- {
|
|
|
- var calls = await _callApplication.QueryTianrunCallsAsync(
|
|
|
- direction: ECallDirection.In,
|
|
|
- callStartTimeStart: today,
|
|
|
- callStartTimeEnd: today.AddDays(1).AddSeconds(-1),
|
|
|
- cancellationToken: HttpContext.RequestAborted);
|
|
|
- callNum = calls.Count();
|
|
|
- validCallNum = calls.Where(x => x.Duration > 0 || x.QueueTims > 0 || x.RingTimes > 0).Count();
|
|
|
- //今日接通率
|
|
|
- answeredNum = calls.Where(x => x.Duration > 0).Count();
|
|
|
- answeredRate = validCallNum > 0
|
|
|
- ? Math.Round((double.Parse(answeredNum.ToString()) / double.Parse(validCallNum.ToString())) * 100, 2) + "%"
|
|
|
- : "-";
|
|
|
- }
|
|
|
- else if (_appOptions.Value.GetDefaultAppScopeConfiguration().CallCenterType == AppDefaults.CallCenterType.XingTang)
|
|
|
- {
|
|
|
- var calls = await _callApplication.QueryCallsAsync(
|
|
|
- callStartTimeStart: today,
|
|
|
- callStartTimeEnd: today.AddDays(1).AddSeconds(-1),
|
|
|
- cancellationToken: HttpContext.RequestAborted);
|
|
|
- callNum = calls.Count();
|
|
|
- validCallNum = calls.Where(x => x.Duration > 0 || x.WaitDuration > 0 || x.RingDuration > 0).Count();
|
|
|
- //今日接通率
|
|
|
- answeredNum = calls.Where(x => x.Duration > 0).Count();
|
|
|
- answeredRate = validCallNum > 0
|
|
|
- ? Math.Round((double.Parse(answeredNum.ToString()) / double.Parse(validCallNum.ToString())) * 100, 2) + "%"
|
|
|
- : "-";
|
|
|
- }
|
|
|
+ int callNum = 0, validCallNum = 0, answeredNum = 0;
|
|
|
+ var answeredRate = string.Empty;
|
|
|
+ var today = DateTime.Today.Date;
|
|
|
+ if (_appOptions.Value.GetDefaultAppScopeConfiguration().CallCenterType == AppDefaults.CallCenterType.TianRun)
|
|
|
+ {
|
|
|
+ var calls = await _callApplication.QueryTianrunCallsAsync(
|
|
|
+ direction: ECallDirection.In,
|
|
|
+ callStartTimeStart: today,
|
|
|
+ callStartTimeEnd: today.AddDays(1).AddSeconds(-1),
|
|
|
+ cancellationToken: HttpContext.RequestAborted);
|
|
|
+ callNum = calls.Count();
|
|
|
+ validCallNum = calls.Where(x => x.Duration > 0 || x.QueueTims > 0 || x.RingTimes > 0).Count();
|
|
|
+ //今日接通率
|
|
|
+ answeredNum = calls.Where(x => x.Duration > 0).Count();
|
|
|
+ answeredRate = validCallNum > 0
|
|
|
+ ? Math.Round((double.Parse(answeredNum.ToString()) / double.Parse(validCallNum.ToString())) * 100, 2) + "%"
|
|
|
+ : "-";
|
|
|
+ }
|
|
|
+ else if (_appOptions.Value.GetDefaultAppScopeConfiguration().CallCenterType == AppDefaults.CallCenterType.XingTang)
|
|
|
+ {
|
|
|
+ var calls = await _callApplication.QueryCallsAsync(
|
|
|
+ callStartTimeStart: today,
|
|
|
+ callStartTimeEnd: today.AddDays(1).AddSeconds(-1),
|
|
|
+ cancellationToken: HttpContext.RequestAborted);
|
|
|
+ callNum = calls.Count();
|
|
|
+ validCallNum = calls.Where(x => x.Duration > 0 || x.WaitDuration > 0 || x.RingDuration > 0).Count();
|
|
|
+ //今日接通率
|
|
|
+ answeredNum = calls.Where(x => x.Duration > 0).Count();
|
|
|
+ answeredRate = validCallNum > 0
|
|
|
+ ? Math.Round((double.Parse(answeredNum.ToString()) / double.Parse(validCallNum.ToString())) * 100, 2) + "%"
|
|
|
+ : "-";
|
|
|
+ }
|
|
|
|
|
|
- //今日受理工单
|
|
|
- var tadayOrders = await orderQuery
|
|
|
- .Where(o => tadayTime.Equals(o.CreationTime.ToString("yyyy-MM-dd"))).ToListAsync();
|
|
|
- var orderNum = tadayOrders.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
|
|
|
- };
|
|
|
- }
|
|
|
+ //今日受理工单
|
|
|
+ var tadayOrders = await orderQuery
|
|
|
+ .Where(o => tadayTime.Equals(o.CreationTime.ToString("yyyy-MM-dd"))).ToListAsync();
|
|
|
+ var orderNum = tadayOrders.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
|
|
|
+ };
|
|
|
+ }
|
|
|
|
|
|
- //部门
|
|
|
- //今日待办 tasksOkNum
|
|
|
- //var time = DateTime.Parse(tadayTime);
|
|
|
- //工单
|
|
|
- var order = await _orderRepository.Queryable(hasHandled: false)
|
|
|
- .Includes(d => d.OrderSpecials)
|
|
|
- .Where(d => d.Status != EOrderStatus.WaitForAccept && d.Status != EOrderStatus.BackToUnAccept && d.Status != EOrderStatus.SpecialToUnAccept && d.Status != EOrderStatus.HandOverToUnAccept)
|
|
|
+ //部门
|
|
|
+ //今日待办 tasksOkNum
|
|
|
+ //var time = DateTime.Parse(tadayTime);
|
|
|
+ //工单
|
|
|
+ var order = await _orderRepository.Queryable(hasHandled: false)
|
|
|
+ .Includes(d => d.OrderSpecials)
|
|
|
+ .Where(d => d.Status != EOrderStatus.WaitForAccept && d.Status != EOrderStatus.BackToUnAccept && d.Status != EOrderStatus.SpecialToUnAccept && d.Status != EOrderStatus.HandOverToUnAccept)
|
|
|
.Where(d => d.Source < ESource.MLSQ || d.Source > ESource.WZSC)
|
|
|
- .Where(d => d.Status != EOrderStatus.BackToProvince && d.Status < EOrderStatus.Filed)
|
|
|
- .Where(d => d.OrderSpecials.Any() == false || d.OrderSpecials.Any(s => s.State > 0))
|
|
|
- .GroupBy(o => new { o.Id, o.Status })
|
|
|
- .Select(o => new
|
|
|
- {
|
|
|
- aboutExpire = SqlFunc.AggregateSum(SqlFunc.IIF(DateTime.Now > o.NearlyExpiredTime!.Value && DateTime.Now < o.ExpiredTime!.Value,
|
|
|
- 1, 0)),
|
|
|
- havExpired = SqlFunc.AggregateSum(SqlFunc.IIF(DateTime.Now > o.ExpiredTime!.Value, 1, 0)),
|
|
|
- countersignHandle = SqlFunc.AggregateSum(SqlFunc.IIF(o.CounterSignType.HasValue, 1, 0)),
|
|
|
- }).ToListAsync();
|
|
|
- var aboutExpire = order?.Sum(x => x.aboutExpire) ?? 0;
|
|
|
- var havExpired = order?.Sum(x => x.havExpired) ?? 0;
|
|
|
- var countersignHandle = order?.Sum(x => x.countersignHandle) ?? 0;
|
|
|
- //延期
|
|
|
- var delay = await _orderDelayRepository.Queryable(hasHandled: false)
|
|
|
- .Where(d => d.DelayState == EDelayState.Examining).CountAsync();
|
|
|
- //甄别
|
|
|
- var screenAudit = await _orderScreenRepository.Queryable(hasHandled: false)
|
|
|
- .Where(x => x.CreationTime < DateTime.Now && x.CreationTime > DateTime.Now.AddMonths(-2))
|
|
|
- .Where(x => (x.Status == EScreenStatus.Apply || x.Status == EScreenStatus.Approval || (x.Status == EScreenStatus.SendBack && x.SendBackApply == false)))
|
|
|
- //.Where(d => d.Status == EScreenStatus.Apply)
|
|
|
- .CountAsync();
|
|
|
- //var workTime = _timeLimitDomainService.CalcWorkTimeReduce(DateTime.Now, 5);
|
|
|
- var screenHandle = await _orderVisitedDetailRepository.Queryable(false, true)
|
|
|
- .Includes(x => x.OrderVisit)
|
|
|
- .Includes(x => x.OrderScreens)
|
|
|
+ .Where(d => d.Status != EOrderStatus.BackToProvince && d.Status < EOrderStatus.Filed)
|
|
|
+ .Where(d => d.OrderSpecials.Any() == false || d.OrderSpecials.Any(s => s.State > 0))
|
|
|
+ .GroupBy(o => new { o.Id,o.Status })
|
|
|
+ .Select(o => new
|
|
|
+ {
|
|
|
+ aboutExpire = SqlFunc.AggregateSum(SqlFunc.IIF(DateTime.Now > o.NearlyExpiredTime!.Value && DateTime.Now < o.ExpiredTime!.Value,
|
|
|
+ 1, 0)),
|
|
|
+ havExpired = SqlFunc.AggregateSum(SqlFunc.IIF(DateTime.Now > o.ExpiredTime!.Value , 1, 0)),
|
|
|
+ countersignHandle = SqlFunc.AggregateSum(SqlFunc.IIF(o.CounterSignType.HasValue, 1, 0)),
|
|
|
+ }).ToListAsync();
|
|
|
+ var aboutExpire = order?.Sum(x=>x.aboutExpire) ?? 0;
|
|
|
+ var havExpired = order?.Sum(x=>x.havExpired) ?? 0;
|
|
|
+ var countersignHandle = order?.Sum(x=> x.countersignHandle) ?? 0;
|
|
|
+ //延期
|
|
|
+ var delay = await _orderDelayRepository.Queryable(hasHandled: false)
|
|
|
+ .Where(d => d.DelayState == EDelayState.Examining).CountAsync();
|
|
|
+ //甄别
|
|
|
+ var screenAudit = await _orderScreenRepository.Queryable(hasHandled: false)
|
|
|
+ .Where(x=>x.CreationTime < DateTime.Now && x.CreationTime > DateTime.Now.AddMonths(-2))
|
|
|
+ .Where(x => (x.Status == EScreenStatus.Apply || x.Status == EScreenStatus.Approval || (x.Status == EScreenStatus.SendBack && x.SendBackApply == false)))
|
|
|
+ //.Where(d => d.Status == EScreenStatus.Apply)
|
|
|
+ .CountAsync();
|
|
|
+ //var workTime = _timeLimitDomainService.CalcWorkTimeReduce(DateTime.Now, 5);
|
|
|
+ var screenHandle = await _orderVisitedDetailRepository.Queryable(false, true)
|
|
|
+ .Includes(x => x.OrderVisit)
|
|
|
+ .Includes(x => x.OrderScreens)
|
|
|
.Where(x => x.OrderScreens.Any(s => s.Status == EScreenStatus.SendBack && s.SendBackApply == true) || x.OrderScreens.Any(s => (s.Status != EScreenStatus.SendBack && s.SendBackApply != true)) == false)
|
|
|
- .Where(x => x.OrderVisit.VisitState == EVisitState.Visited && x.OrderVisit.IsCanHandle)
|
|
|
- .Where(x => x.VisitTarget == EVisitTarget.Org && x.VisitOrgCode == _sessionContext.OrgId && (
|
|
|
- SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "1" || SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "2" ||
|
|
|
- SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "1" || SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "2")).CountAsync();
|
|
|
- return new
|
|
|
- {
|
|
|
- AboutExpire = aboutExpire,
|
|
|
- HavExpired = havExpired,
|
|
|
- CountersignHandle = countersignHandle,
|
|
|
- ScreenAudit = screenAudit,
|
|
|
- Delay = delay,
|
|
|
- ScreenHandle = screenHandle
|
|
|
- };
|
|
|
- }
|
|
|
+ .Where(x => x.OrderVisit.VisitState == EVisitState.Visited && x.OrderVisit.IsCanHandle)
|
|
|
+ .Where(x=> x.VisitTarget == EVisitTarget.Org && x.VisitOrgCode == _sessionContext.OrgId && (
|
|
|
+ SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "1" || SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "2" ||
|
|
|
+ SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "1" || SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "2")).CountAsync();
|
|
|
+ return new
|
|
|
+ {
|
|
|
+ AboutExpire = aboutExpire, HavExpired = havExpired, CountersignHandle = countersignHandle, ScreenAudit = screenAudit, Delay = delay,
|
|
|
+ ScreenHandle = screenHandle
|
|
|
+ };
|
|
|
+ }
|
|
|
|
|
|
/// <summary>
|
|
|
/// 首页基础数据
|
|
@@ -233,7 +226,7 @@ namespace Hotline.Api.Controllers
|
|
|
if (_sessionContext.OrgIsCenter)
|
|
|
{
|
|
|
//待办
|
|
|
- var waitedList = await _orderRepository
|
|
|
+ var waitedDataList = await _orderRepository
|
|
|
.Queryable(hasHandled: false, isAdmin: isAdmin)
|
|
|
.Includes(d => d.OrderSpecials)
|
|
|
.Where(d => d.Status != EOrderStatus.WaitForAccept && d.Status != EOrderStatus.BackToUnAccept && d.Status != EOrderStatus.SpecialToUnAccept && d.Status != EOrderStatus.HandOverToUnAccept)
|
|
@@ -250,20 +243,22 @@ namespace Hotline.Api.Controllers
|
|
|
HotspotName = d.HotspotName,
|
|
|
Type = "Waited",
|
|
|
Time = d.ExpiredTime,
|
|
|
- Status =d.Status,
|
|
|
- ActualHandleTime =d.ActualHandleTime,
|
|
|
+ Status = d.Status,
|
|
|
+ ActualHandleTime = d.ActualHandleTime,
|
|
|
CounterSignType = d.CounterSignType
|
|
|
})
|
|
|
.ToListAsync();
|
|
|
- allNum += waitedList.Count > 40 ? 40: waitedList.Count;
|
|
|
- allList.AddRange(waitedList);
|
|
|
+ var waitedList = waitedDataList.Take(40).ToList();
|
|
|
+ waitedList = waitedList.Count > 0 ? waitedList.Copy() : waitedList;
|
|
|
+ //allNum += waitedList.Count > 40 ? 40 : waitedList.Count;
|
|
|
+ //allList.AddRange(waitedList);
|
|
|
// 已超期
|
|
|
- var waitedExpiredDataList = waitedList.Where(x => (x.Time < DateTime.Now && x.Status < EOrderStatus.Filed) ||
|
|
|
- (x.Time < x.ActualHandleTime && x.Status >= EOrderStatus.Filed)).ToList();
|
|
|
- var waitedExpiredList = waitedExpiredDataList.Take(40).ToList();
|
|
|
- waitedExpiredList.ForEach(x => x.Type = "WaitedExpired");
|
|
|
- allNum += waitedExpiredDataList.Count;
|
|
|
- allList.AddRange(waitedExpiredList);
|
|
|
+ var waitedExpiredDataList = waitedDataList.Where(x => (x.Time < DateTime.Now && x.Status < EOrderStatus.Filed) ||
|
|
|
+ (x.Time < x.ActualHandleTime && x.Status >= EOrderStatus.Filed)).Take(40).ToList();
|
|
|
+ waitedExpiredDataList = waitedExpiredDataList.Count > 0 ? waitedExpiredDataList.Copy() : waitedExpiredDataList;
|
|
|
+ waitedExpiredDataList.ForEach(x => x.Type = "WaitedExpired");
|
|
|
+ //allNum += waitedExpiredDataList.Count;
|
|
|
+ //allList.AddRange(waitedExpiredDataList);
|
|
|
//回访待办
|
|
|
var visitDataList = await _orderVisitRepository.Queryable()
|
|
|
.Includes(d => d.Order)
|
|
@@ -284,14 +279,14 @@ namespace Hotline.Api.Controllers
|
|
|
})
|
|
|
.Take(40)
|
|
|
.ToListAsync();
|
|
|
- allNum += visitDataList.Count;
|
|
|
- allList.AddRange(visitDataList);
|
|
|
+ //allNum += visitDataList.Count;
|
|
|
+ //allList.AddRange(visitDataList);
|
|
|
//会签待办
|
|
|
- var signDataList = waitedList.Where(x => x.CounterSignType == ECounterSignType.Center || x.CounterSignType == ECounterSignType.Department).ToList();
|
|
|
- var signList = signDataList.Take(40).ToList();
|
|
|
- signList.ForEach(x => x.Type = "Sign");
|
|
|
- allNum += signDataList.Count;
|
|
|
- allList.AddRange(signList);
|
|
|
+ var signDataList = waitedDataList.Where(x => x.CounterSignType == ECounterSignType.Center || x.CounterSignType == ECounterSignType.Department).Take(40).ToList();
|
|
|
+ signDataList = signDataList.Count > 0 ? signDataList.Copy() : signDataList;
|
|
|
+ signDataList.ForEach(x => x.Type = "Sign");
|
|
|
+ //allNum += signDataList.Count;
|
|
|
+ //allList.AddRange(signDataList);
|
|
|
//延期待审批
|
|
|
var delayDataList = await _orderDelayRepository.Queryable(canView: true, isAdmin: isAdmin)
|
|
|
.Includes(d => d.Order)
|
|
@@ -310,8 +305,8 @@ namespace Hotline.Api.Controllers
|
|
|
CounterSignType = d.Order.CounterSignType
|
|
|
}).Take(40)
|
|
|
.ToListAsync();
|
|
|
- allNum += delayDataList.Count;
|
|
|
- allList.AddRange(delayDataList);
|
|
|
+ //allNum += delayDataList.Count;
|
|
|
+ //allList.AddRange(delayDataList);
|
|
|
//部门即将超期
|
|
|
var nearlyExpiredDataList = await _orderRepository.Queryable(canView: !IsCenter)
|
|
|
.Includes(d => d.OrderDelays)
|
|
@@ -330,8 +325,8 @@ namespace Hotline.Api.Controllers
|
|
|
CounterSignType = d.CounterSignType
|
|
|
}).Take(40)
|
|
|
.ToListAsync();
|
|
|
- allNum += nearlyExpiredDataList.Count;
|
|
|
- allList.AddRange(nearlyExpiredDataList);
|
|
|
+ //allNum += nearlyExpiredDataList.Count;
|
|
|
+ //allList.AddRange(nearlyExpiredDataList);
|
|
|
//甄别待审批
|
|
|
var screenDataList = await _orderScreenRepository.Queryable(hasHandled: !true, isAdmin: isAdmin)
|
|
|
.Includes(d => d.Order)
|
|
@@ -350,8 +345,8 @@ namespace Hotline.Api.Controllers
|
|
|
CounterSignType = d.Order.CounterSignType
|
|
|
}).Take(40)
|
|
|
.ToListAsync();
|
|
|
- allNum += screenDataList.Count;
|
|
|
- allList.AddRange(screenDataList);
|
|
|
+ //allNum += screenDataList.Count;
|
|
|
+ //allList.AddRange(screenDataList);
|
|
|
//退回待审批
|
|
|
var sendBackAuditDataList = await _orderSendBackAuditRepository.Queryable()
|
|
|
.Includes(d => d.Order)
|
|
@@ -371,16 +366,16 @@ namespace Hotline.Api.Controllers
|
|
|
CounterSignType = d.Order.CounterSignType
|
|
|
}).Take(40)
|
|
|
.ToListAsync();
|
|
|
- allNum += sendBackAuditDataList.Count;
|
|
|
- allList.AddRange(sendBackAuditDataList);
|
|
|
+ //allNum += sendBackAuditDataList.Count;
|
|
|
+ //allList.AddRange(sendBackAuditDataList);
|
|
|
return new
|
|
|
{
|
|
|
- AllNum = allNum,
|
|
|
- AllList = allList,
|
|
|
+ //AllNum = allNum,
|
|
|
+ //AllList = allList,
|
|
|
WaitedNum = waitedList.Count > 40 ? 40 : waitedList.Count,
|
|
|
WaitedList = waitedList.Take(40).ToList(),
|
|
|
WaitedExpiredNum = waitedExpiredDataList.Count,
|
|
|
- WaitedExpiredList = waitedExpiredList,
|
|
|
+ WaitedExpiredList = waitedExpiredDataList,
|
|
|
VisitListNum = visitDataList.Count,
|
|
|
VisitList = visitDataList,
|
|
|
SignDataNum = signDataList.Count,
|
|
@@ -398,7 +393,7 @@ namespace Hotline.Api.Controllers
|
|
|
else
|
|
|
{
|
|
|
//待办
|
|
|
- var waitedList = await _orderRepository
|
|
|
+ var waitedDataList = await _orderRepository
|
|
|
.Queryable(hasHandled: false, isAdmin: isAdmin)
|
|
|
.Includes(d => d.OrderSpecials)
|
|
|
.Where(d => d.Status != EOrderStatus.WaitForAccept && d.Status != EOrderStatus.BackToUnAccept && d.Status != EOrderStatus.SpecialToUnAccept && d.Status != EOrderStatus.HandOverToUnAccept)
|
|
@@ -420,21 +415,24 @@ namespace Hotline.Api.Controllers
|
|
|
CounterSignType = d.CounterSignType
|
|
|
})
|
|
|
.ToListAsync();
|
|
|
- allNum += waitedList.Count > 40 ? 40 : waitedList.Count;
|
|
|
- allList.AddRange(waitedList);
|
|
|
+ var waitedList = waitedDataList.Take(40).ToList();
|
|
|
+ waitedList = waitedList.Count > 0 ? waitedList.Copy() : waitedList;
|
|
|
+ //allNum += waitedList.Count > 40 ? 40 : waitedList.Count;
|
|
|
+ //allList.AddRange(waitedList);
|
|
|
//已超期
|
|
|
- var waitedExpiredDataList = waitedList.Where(x => (x.Time < DateTime.Now && x.Status < EOrderStatus.Filed) ||
|
|
|
- (x.Time < x.ActualHandleTime && x.Status >= EOrderStatus.Filed)).ToList();
|
|
|
- var waitedExpiredList = waitedExpiredDataList.Take(40).ToList();
|
|
|
- waitedExpiredList.ForEach(x => x.Type = "WaitedExpired");
|
|
|
- allNum += waitedExpiredDataList.Count;
|
|
|
- allList.AddRange(waitedExpiredList);
|
|
|
+ var waitedExpiredDataList = waitedDataList.Where(x => (x.Time < DateTime.Now && x.Status < EOrderStatus.Filed) ||
|
|
|
+ (x.Time < x.ActualHandleTime && x.Status >= EOrderStatus.Filed)).Take(40).ToList();
|
|
|
+ waitedExpiredDataList = waitedExpiredDataList.Count > 0 ? waitedExpiredDataList.Copy() : waitedExpiredDataList;
|
|
|
+ waitedExpiredDataList.ForEach(x => x.Type = "WaitedExpired");
|
|
|
+ //allNum += waitedExpiredDataList.Count;
|
|
|
+ //allList.AddRange(waitedExpiredDataList);
|
|
|
//会签待办
|
|
|
- var signDataList = waitedList.Where(x => x.CounterSignType == ECounterSignType.Center || x.CounterSignType == ECounterSignType.Department).ToList();
|
|
|
- var signList = signDataList.Take(40).ToList();
|
|
|
- signList.ForEach(x => x.Type = "Sign");
|
|
|
- allNum += signDataList.Count;
|
|
|
- allList.AddRange(signList);
|
|
|
+ var signDataList = waitedDataList.Where(x => x.CounterSignType == ECounterSignType.Center || x.CounterSignType == ECounterSignType.Department).Take(40).ToList();
|
|
|
+ signDataList = signDataList.Count > 0 ? signDataList.Copy() : signDataList;
|
|
|
+ signDataList.ForEach(x => x.Type = "Sign");
|
|
|
+
|
|
|
+ //allNum += signDataList.Count;
|
|
|
+ //allList.AddRange(signDataList);
|
|
|
//甄别待审批
|
|
|
var screenDataList = await _orderScreenRepository.Queryable(hasHandled: !true, isAdmin: isAdmin)
|
|
|
.Includes(d => d.Order)
|
|
@@ -453,8 +451,8 @@ namespace Hotline.Api.Controllers
|
|
|
CounterSignType = d.Order.CounterSignType
|
|
|
}).Take(40)
|
|
|
.ToListAsync();
|
|
|
- allNum += screenDataList.Count;
|
|
|
- allList.AddRange(screenDataList);
|
|
|
+ //allNum += screenDataList.Count;
|
|
|
+ //allList.AddRange(screenDataList);
|
|
|
//延期待审批
|
|
|
var delayDataList = await _orderDelayRepository.Queryable(canView: true, isAdmin: isAdmin)
|
|
|
.Includes(d => d.Order)
|
|
@@ -473,8 +471,8 @@ namespace Hotline.Api.Controllers
|
|
|
CounterSignType = d.Order.CounterSignType
|
|
|
}).Take(40)
|
|
|
.ToListAsync();
|
|
|
- allNum += delayDataList.Count;
|
|
|
- allList.AddRange(delayDataList);
|
|
|
+ //allNum += delayDataList.Count;
|
|
|
+ //allList.AddRange(delayDataList);
|
|
|
//甄别待申请
|
|
|
var screenApplyDataList = await _orderVisitedDetailRepository.Queryable(false, true)
|
|
|
.Includes(x => x.OrderVisit)
|
|
@@ -502,13 +500,13 @@ namespace Hotline.Api.Controllers
|
|
|
Status = x.OrderVisit.Order.Status,
|
|
|
CounterSignType = x.OrderVisit.Order.CounterSignType
|
|
|
}).Take(40).ToListAsync();
|
|
|
- allNum += screenApplyDataList.Count;
|
|
|
- allList.AddRange(screenApplyDataList);
|
|
|
+ //allNum += screenApplyDataList.Count;
|
|
|
+ //allList.AddRange(screenApplyDataList);
|
|
|
//退回待审批
|
|
|
var sendBackAuditDataList = await _orderSendBackAuditRepository.Queryable()
|
|
|
.Includes(d => d.Order)
|
|
|
.Where(d => d.State == ESendBackAuditState.Apply)
|
|
|
- .WhereIF(_sessionContext.Roles.Contains("role_sysadmin") == false , x => x.SendBackOrgId == _sessionContext.OrgId) // 123 系统管理员;
|
|
|
+ .WhereIF(_sessionContext.Roles.Contains("role_sysadmin") == false, x => x.SendBackOrgId == _sessionContext.OrgId) // 123 系统管理员;
|
|
|
.OrderByDescending(d => d.CreationTime)
|
|
|
.Select(d => new HomeOrderDto
|
|
|
{
|
|
@@ -523,16 +521,34 @@ namespace Hotline.Api.Controllers
|
|
|
CounterSignType = d.Order.CounterSignType
|
|
|
}).Take(40)
|
|
|
.ToListAsync();
|
|
|
- allNum += sendBackAuditDataList.Count;
|
|
|
- allList.AddRange(sendBackAuditDataList);
|
|
|
+ //allNum += sendBackAuditDataList.Count;
|
|
|
+ //allList.AddRange(sendBackAuditDataList);
|
|
|
+ //部门即将超期
|
|
|
+ var nearlyExpiredDataList = await _orderRepository.Queryable(canView: !IsCenter)
|
|
|
+ .Includes(d => d.OrderDelays)
|
|
|
+ .Where(d => d.Status < EOrderStatus.Filed && DateTime.Now > d.NearlyExpiredTime && DateTime.Now < d.ExpiredTime)
|
|
|
+ .OrderByDescending(d => d.CreationTime)
|
|
|
+ .Select(d => new HomeOrderDto
|
|
|
+ {
|
|
|
+ No = d.No,
|
|
|
+ OrderId = d.Id,
|
|
|
+ Title = d.Title,
|
|
|
+ AcceptType = d.AcceptType,
|
|
|
+ HotspotName = d.HotspotName,
|
|
|
+ Type = "NearlyExpired",
|
|
|
+ Time = d.ExpiredTime,
|
|
|
+ Status = d.Status,
|
|
|
+ CounterSignType = d.CounterSignType
|
|
|
+ }).Take(40)
|
|
|
+ .ToListAsync();
|
|
|
return new
|
|
|
{
|
|
|
- AllNum = allNum,
|
|
|
- AllList = allList,
|
|
|
+ //AllNum = allNum,
|
|
|
+ //AllList = allList,
|
|
|
WaitedNum = waitedList.Count > 40 ? 40 : waitedList.Count,
|
|
|
WaitedList = waitedList.Take(40).ToList(),
|
|
|
WaitedExpiredNum = waitedExpiredDataList.Count,
|
|
|
- WaitedExpiredList = waitedExpiredList,
|
|
|
+ WaitedExpiredList = waitedExpiredDataList,
|
|
|
SignDataNum = signDataList.Count,
|
|
|
SignDataList = signDataList,
|
|
|
ScreenNum = screenDataList.Count,
|
|
@@ -542,7 +558,9 @@ namespace Hotline.Api.Controllers
|
|
|
ScreenApplyNum = screenApplyDataList.Count,
|
|
|
ScreenApplyList = screenApplyDataList,
|
|
|
SendBackAuditNum = sendBackAuditDataList.Count,
|
|
|
- SendBackAuditList = sendBackAuditDataList
|
|
|
+ SendBackAuditList = sendBackAuditDataList,
|
|
|
+ NearlyExpiredNum = nearlyExpiredDataList.Count,
|
|
|
+ NearlyExpiredList = nearlyExpiredDataList,
|
|
|
};
|
|
|
}
|
|
|
}
|