|
@@ -988,18 +988,18 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
expiredTimeConfig.NearlyExpiredTime, expiredTimeConfig.NearlyExpiredTimeOne, dto.Workflow.Opinion,
|
|
|
_sessionContextProvider.SessionContext.RequiredUserId, _sessionContextProvider.SessionContext.UserName,
|
|
|
canUpdateOrderSender);
|
|
|
- //TODO发送短信即将超期
|
|
|
- //_capPublisher.PublishDelay(expiredTimeConfig.NearlyExpiredTime - DateTime.Now, EventNames.HotlineOrderNearlyExpiredTimeSms, new PublishNearlyExpiredTimeSmsDto() { OrderId = order.Id });
|
|
|
- //自动延期订阅
|
|
|
- var enabled = _systemSettingCacheManager.GetSetting(SettingConstants.EnabledAutomaticDelay)?.SettingValue[0];
|
|
|
- if (bool.Parse(enabled))
|
|
|
- {
|
|
|
- await _capPublisher.PublishDelayAsync(
|
|
|
- expiredTimeConfig.ExpiredTime - DateTime.Now.AddHours(1),
|
|
|
+ //TODO发送短信即将超期
|
|
|
+ //_capPublisher.PublishDelay(expiredTimeConfig.NearlyExpiredTime - DateTime.Now, EventNames.HotlineOrderNearlyExpiredTimeSms, new PublishNearlyExpiredTimeSmsDto() { OrderId = order.Id });
|
|
|
+ //自动延期订阅
|
|
|
+ var enabled = _systemSettingCacheManager.GetSetting(SettingConstants.EnabledAutomaticDelay)?.SettingValue[0];
|
|
|
+ if (bool.Parse(enabled))
|
|
|
+ {
|
|
|
+ await _capPublisher.PublishDelayAsync(
|
|
|
+ expiredTimeConfig.ExpiredTime - DateTime.Now.AddHours(1),
|
|
|
EventNames.HotlineOrderAutomaticDelay,
|
|
|
- new PublishAutomaticDelayDto() { OrderId = order.Id },
|
|
|
+ new PublishAutomaticDelayDto() { OrderId = order.Id },
|
|
|
cancellationToken: cancellationToken);
|
|
|
- }
|
|
|
+ }
|
|
|
}
|
|
|
else if (dto.Workflow.FlowDirection is EFlowDirection.CenterToOrg)
|
|
|
{
|
|
@@ -1011,15 +1011,15 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
expiredTimeConfig.NearlyExpiredTime, expiredTimeConfig.NearlyExpiredTimeOne, dto.Workflow.Opinion,
|
|
|
_sessionContextProvider.SessionContext.RequiredUserId, _sessionContextProvider.SessionContext.UserName,
|
|
|
canUpdateOrderSender);
|
|
|
- //TODO发送短信即将超期
|
|
|
- //_capPublisher.PublishDelay(expiredTimeConfig.NearlyExpiredTime - DateTime.Now, EventNames.HotlineOrderNearlyExpiredTimeSms, new PublishNearlyExpiredTimeSmsDto() { OrderId = order.Id });
|
|
|
- //自动延期订阅
|
|
|
- var enabled = _systemSettingCacheManager.GetSetting(SettingConstants.EnabledAutomaticDelay)?.SettingValue[0];
|
|
|
- if (bool.Parse(enabled))
|
|
|
- {
|
|
|
- _capPublisher.PublishDelay(expiredTimeConfig.ExpiredTime - DateTime.Now.AddHours(1), EventNames.HotlineOrderAutomaticDelay,
|
|
|
- new PublishAutomaticDelayDto() { OrderId = order.Id });
|
|
|
- }
|
|
|
+ //TODO发送短信即将超期
|
|
|
+ //_capPublisher.PublishDelay(expiredTimeConfig.NearlyExpiredTime - DateTime.Now, EventNames.HotlineOrderNearlyExpiredTimeSms, new PublishNearlyExpiredTimeSmsDto() { OrderId = order.Id });
|
|
|
+ //自动延期订阅
|
|
|
+ var enabled = _systemSettingCacheManager.GetSetting(SettingConstants.EnabledAutomaticDelay)?.SettingValue[0];
|
|
|
+ if (bool.Parse(enabled))
|
|
|
+ {
|
|
|
+ _capPublisher.PublishDelay(expiredTimeConfig.ExpiredTime - DateTime.Now.AddHours(1), EventNames.HotlineOrderAutomaticDelay,
|
|
|
+ new PublishAutomaticDelayDto() { OrderId = order.Id });
|
|
|
+ }
|
|
|
}
|
|
|
else if (dto.Workflow.FlowDirection is EFlowDirection.CenterToCenter)
|
|
|
{
|
|
@@ -1029,15 +1029,15 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
order.CenterToCenter(expiredTimeConfig.TimeText, expiredTimeConfig.Count,
|
|
|
expiredTimeConfig.TimeType, expiredTimeConfig.ExpiredTime, expiredTimeConfig.NearlyExpiredTime,
|
|
|
expiredTimeConfig.NearlyExpiredTimeOne);
|
|
|
- //TODO发送短信即将超期
|
|
|
- //_capPublisher.PublishDelay(expiredTimeConfig.NearlyExpiredTime - DateTime.Now, EventNames.HotlineOrderNearlyExpiredTimeSms, new PublishNearlyExpiredTimeSmsDto() { OrderId = order.Id });
|
|
|
- //自动延期订阅
|
|
|
- var enabled = _systemSettingCacheManager.GetSetting(SettingConstants.EnabledAutomaticDelay)?.SettingValue[0];
|
|
|
- if (bool.Parse(enabled))
|
|
|
- {
|
|
|
- _capPublisher.PublishDelay(expiredTimeConfig.ExpiredTime - DateTime.Now.AddHours(1), EventNames.HotlineOrderAutomaticDelay,
|
|
|
- new PublishAutomaticDelayDto() { OrderId = order.Id });
|
|
|
- }
|
|
|
+ //TODO发送短信即将超期
|
|
|
+ //_capPublisher.PublishDelay(expiredTimeConfig.NearlyExpiredTime - DateTime.Now, EventNames.HotlineOrderNearlyExpiredTimeSms, new PublishNearlyExpiredTimeSmsDto() { OrderId = order.Id });
|
|
|
+ //自动延期订阅
|
|
|
+ var enabled = _systemSettingCacheManager.GetSetting(SettingConstants.EnabledAutomaticDelay)?.SettingValue[0];
|
|
|
+ if (bool.Parse(enabled))
|
|
|
+ {
|
|
|
+ _capPublisher.PublishDelay(expiredTimeConfig.ExpiredTime - DateTime.Now.AddHours(1), EventNames.HotlineOrderAutomaticDelay,
|
|
|
+ new PublishAutomaticDelayDto() { OrderId = order.Id });
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
}
|
|
@@ -1717,7 +1717,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
{
|
|
|
bool IsCenter = _sessionContextProvider.SessionContext.OrgIsCenter;
|
|
|
int orgLevel = _sessionContextProvider.SessionContext.OrgLevel;
|
|
|
- string orgLevelStr = ((orgLevel+1) * 3).ToString();
|
|
|
+ string orgLevelStr = ((orgLevel + 1) * 3).ToString();
|
|
|
var list = _orderVisitDetailRepository.Queryable()
|
|
|
.Where(x => x.OrderVisit.VisitTime >= dto.StartTime.Value && x.OrderVisit.VisitTime <= dto.EndTime.Value &&
|
|
|
x.VisitTarget == EVisitTarget.Org && x.OrderVisit.VisitState == EVisitState.Visited && !string.IsNullOrEmpty(x.VisitOrgCode))
|
|
@@ -1815,7 +1815,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
SqlFunc.AggregateSum(SqlFunc.IIF(SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "6", 1, 0))), //未接通
|
|
|
})
|
|
|
.MergeTable()
|
|
|
- .LeftJoin<SystemOrganize>((it, o) => it.OrgCode == o.Id && (o.Level == orgLevel || o.Level == (orgLevel+1)))
|
|
|
+ .LeftJoin<SystemOrganize>((it, o) => it.OrgCode == o.Id && (o.Level == orgLevel || o.Level == (orgLevel + 1)))
|
|
|
.Select((it, o) => new VisitAndOrgSatisfactionStatisticsDto()
|
|
|
{
|
|
|
OrgName = o.Name,
|
|
@@ -1857,7 +1857,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
.WhereIF(dto.VisitType != null, (x, it) => it.OrderVisit.VisitType == dto.VisitType)
|
|
|
.GroupBy((x, it) => new
|
|
|
{
|
|
|
- VisitOrgCode = it.VisitOrgCode.Substring(SqlFunc.MappingColumn<int>("0"),SqlFunc.MappingColumn<int>("9"))
|
|
|
+ VisitOrgCode = it.VisitOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("9"))
|
|
|
})
|
|
|
.Select((x, it) => new VisitAndOrgSatisfactionStatisticsDto()
|
|
|
{
|
|
@@ -2900,7 +2900,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
var query = _orderVisitRepository.Queryable()
|
|
|
.Includes(d => d.Order)
|
|
|
.Includes(d => d.Employee)
|
|
|
- .Includes(d=>d.OrderVisitDetails)
|
|
|
+ .Includes(d => d.OrderVisitDetails)
|
|
|
.WhereIF(dto.VisitStateQuery == EVisitStateQuery.NoVisit,
|
|
|
d => d.VisitState == EVisitState.WaitForVisit ||
|
|
|
d.VisitState == EVisitState.NoSatisfiedWaitForVisit)
|
|
@@ -2951,23 +2951,23 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
return query;
|
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 热点类型小类统计明细
|
|
|
- /// </summary>
|
|
|
- /// <param name="dto"></param>
|
|
|
- /// <returns></returns>
|
|
|
+ /// <summary>
|
|
|
+ /// 热点类型小类统计明细
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
|
|
|
- public ISugarQueryable<Order> HotspotStatisticsDetail(HotspotStatisticsRep dto)
|
|
|
+ public ISugarQueryable<Order> HotspotStatisticsDetail(HotspotStatisticsRep dto)
|
|
|
{
|
|
|
- var IsCenter = _sessionContext.OrgIsCenter;
|
|
|
- var query = _orderRepository.Queryable()
|
|
|
- .Includes(d => d.OrderVisits)
|
|
|
- .Where(d => d.CreationTime >= dto.StartTime && d.CreationTime <= dto.EndTime)
|
|
|
- .Where(d => d.HotspotId.StartsWith(dto.HotspotCode))
|
|
|
- .WhereIF(dto.TypeId == 1, d => d.IdentityType == EIdentityType.Citizen)
|
|
|
- .WhereIF(dto.TypeId == 2, d => d.IdentityType == EIdentityType.Enterprise)
|
|
|
- .WhereIF(IsCenter == false, d => d.ActualHandleOrgCode.StartsWith(_sessionContext.RequiredOrgId));
|
|
|
- return query;
|
|
|
+ var IsCenter = _sessionContext.OrgIsCenter;
|
|
|
+ var query = _orderRepository.Queryable()
|
|
|
+ .Includes(d => d.OrderVisits)
|
|
|
+ .Where(d => d.CreationTime >= dto.StartTime && d.CreationTime <= dto.EndTime)
|
|
|
+ .Where(d => d.HotspotId.StartsWith(dto.HotspotCode))
|
|
|
+ .WhereIF(dto.TypeId == 1, d => d.IdentityType == EIdentityType.Citizen)
|
|
|
+ .WhereIF(dto.TypeId == 2, d => d.IdentityType == EIdentityType.Enterprise)
|
|
|
+ .WhereIF(IsCenter == false, d => d.ActualHandleOrgCode.StartsWith(_sessionContext.RequiredOrgId));
|
|
|
+ return query;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -2979,7 +2979,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
{
|
|
|
var list = _orderVisitRepository.Queryable()
|
|
|
.Includes(d => d.Order)
|
|
|
- .Where(x => x.VisitTime >= dto.StartTime.Value && x.VisitTime <= dto.EndTime.Value && x.VisitState == EVisitState.Visited && x.Order.SeatEvaluate != null)
|
|
|
+ .Where(x => x.VisitTime >= dto.StartTime.Value && x.VisitTime <= dto.EndTime.Value && x.VisitState == EVisitState.Visited && x.Order.SeatEvaluate != null
|
|
|
+ && x.Order.SeatEvaluate != ESeatEvaluate.VeryNoSatisfied && x.Order.SeatEvaluate != ESeatEvaluate.Normal)
|
|
|
.GroupBy(x => x.Order.SeatEvaluate)
|
|
|
.Select(x => new SeatSatisfactionStatisticsDto
|
|
|
{
|
|
@@ -2998,7 +2999,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
{
|
|
|
var query = _orderVisitRepository.Queryable()
|
|
|
.LeftJoin<Order>((ov, o) => ov.OrderId == o.Id)
|
|
|
- .Where((ov, o) => ov.VisitTime >= dto.StartTime.Value && ov.VisitTime <= dto.EndTime.Value && ov.VisitState == EVisitState.Visited && o.SeatEvaluate != null)
|
|
|
+ .Where((ov, o) => ov.VisitTime >= dto.StartTime.Value && ov.VisitTime <= dto.EndTime.Value && ov.VisitState == EVisitState.Visited && o.SeatEvaluate != null
|
|
|
+ && o.SeatEvaluate != ESeatEvaluate.VeryNoSatisfied && o.SeatEvaluate != ESeatEvaluate.Normal)
|
|
|
.GroupBy((ov, o) => new
|
|
|
{
|
|
|
o.AcceptorName,
|
|
@@ -3020,6 +3022,27 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
return query;
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 坐席满意度工单明细
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public ISugarQueryable<OrderVisit> QuerySeatSatisfactionOrderVisitList(SeatSatisfactionOrderVisitRequest dto)
|
|
|
+ {
|
|
|
+ var query = _orderVisitRepository.Queryable()
|
|
|
+ .Includes(d => d.Order)
|
|
|
+ .Includes(d => d.Employee)
|
|
|
+ .Includes(d => d.OrderVisitDetails)
|
|
|
+ .Where(p => p.VisitTime >= dto.StartTime.Value && p.VisitTime <= dto.EndTime.Value && p.VisitState == EVisitState.Visited && p.Order.SeatEvaluate != null
|
|
|
+ && p.Order.SeatEvaluate != ESeatEvaluate.VeryNoSatisfied && p.Order.SeatEvaluate != ESeatEvaluate.Normal)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.UserId), p => p.Order.AcceptorId == dto.UserId)
|
|
|
+ .WhereIF(dto.SeatEvaluate.HasValue, p => p.Order.SeatEvaluate == dto.SeatEvaluate)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.UserName), p => p.Order.AcceptorName == dto.UserName)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Title), p => p.Order.Title.Contains(dto.Title))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.No), p => p.Order.No.Contains(dto.No))
|
|
|
+ .OrderByDescending(p => p.VisitTime);
|
|
|
+ return query;
|
|
|
+ }
|
|
|
|
|
|
#region private
|
|
|
/// <summary>
|