|
@@ -178,13 +178,13 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
DateTime stTime = DateTime.Now.AddDays(int.Parse(value));
|
|
|
stTime = _timeLimitDomainService.WorkDay(stTime);
|
|
|
DateTime stTime2 = _timeLimitDomainService.WorkDay(DateTime.Now);
|
|
|
- return _orderRepository.Queryable(canView: true).Includes(d=>d.OrderDelays)
|
|
|
+ return _orderRepository.Queryable(canView: true).Includes(d => d.OrderDelays)
|
|
|
.WhereIF(dto.IsProvince.HasValue, d => d.IsProvince == dto.IsProvince)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No.Contains(dto.No!))
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Title), d => d.Title.Contains(dto.Title!))
|
|
|
- .WhereIF(dto.Delay.HasValue && dto.Delay == 1,d=>d.OrderDelays.Any() == true)
|
|
|
+ .WhereIF(dto.Delay.HasValue && dto.Delay == 1, d => d.OrderDelays.Any() == true)
|
|
|
.WhereIF(dto.Delay.HasValue && dto.Delay == 2, d => d.OrderDelays.Any() == false)
|
|
|
- .Where(d => d.ExpiredTime != null &&
|
|
|
+ .Where(d => d.ExpiredTime != null &&
|
|
|
d.Status != EOrderStatus.Filed && d.Status != EOrderStatus.Published && d.Status != EOrderStatus.Visited && stTime >= d.ExpiredTime.Value && stTime2 <= d.ExpiredTime.Value)
|
|
|
.OrderByDescending(d => d.CreationTime);
|
|
|
}
|
|
@@ -227,13 +227,13 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
DateTime stTime = _timeLimitDomainService.WorkDay(DateTime.Now);
|
|
|
|
|
|
return _orderRepository.Queryable(canView: true).Includes(d => d.OrderDelays)
|
|
|
- .WhereIF(dto.IsProvince.HasValue, d => d.IsProvince == dto.IsProvince)
|
|
|
- //.WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.Contains(dto.Keyword!) || d.No.Contains(dto.Keyword!))
|
|
|
+ .WhereIF(dto.IsProvince.HasValue, d => d.IsProvince == dto.IsProvince)
|
|
|
+ //.WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.Contains(dto.Keyword!) || d.No.Contains(dto.Keyword!))
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.No), x => x.No.Contains(dto.No))
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Title), x => x.Title.Contains(dto.Title!))
|
|
|
- .WhereIF(dto.Delay.HasValue && dto.Delay == 1, d => d.OrderDelays.Any() == true)
|
|
|
+ .WhereIF(dto.Delay.HasValue && dto.Delay == 1, d => d.OrderDelays.Any() == true)
|
|
|
.WhereIF(dto.Delay.HasValue && dto.Delay == 2, d => d.OrderDelays.Any() == false)
|
|
|
- .Where(d => d.ExpiredTime != null &&
|
|
|
+ .Where(d => d.ExpiredTime != null &&
|
|
|
(((d.Status == EOrderStatus.Filed || d.Status == EOrderStatus.Published || d.Status == EOrderStatus.Visited) && d.FiledTime >= d.ExpiredTime) ||
|
|
|
((d.Status != EOrderStatus.Filed && d.Status != EOrderStatus.Published && d.Status != EOrderStatus.Visited) && stTime >= d.ExpiredTime.Value)))
|
|
|
.OrderByDescending(x => x.CreationTime);
|
|
@@ -415,30 +415,30 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
{
|
|
|
var isCenter = _sessionContext.OrgIsCenter;
|
|
|
|
|
|
- return _orderRepository.Queryable(canView: isCenter ? false : true)
|
|
|
+ return _orderRepository.Queryable(canView: !isCenter)
|
|
|
.Includes(x => x.OrderScreens)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.Contains(dto.Keyword!)) //标题
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.ProvinceNo), d => d.ProvinceNo.Contains(dto.ProvinceNo)) //省本地编号
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No.Contains(dto.No)) //工单编码
|
|
|
- //.WhereIF(!string.IsNullOrEmpty(dto.Content), d => d.Content.Contains(dto.Content!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.StartsWith(dto.Keyword!)) //标题
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.ProvinceNo), d => d.ProvinceNo == dto.ProvinceNo) //省本地编号
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No == dto.No) //工单编码
|
|
|
+ //.WhereIF(!string.IsNullOrEmpty(dto.Content), d => d.Content.Contains(dto.Content!))
|
|
|
.WhereIF(dto.AcceptTypes.Any(), d => dto.AcceptTypes.Contains(d.AcceptTypeCode)) //受理类型
|
|
|
.WhereIF(dto.Channels.Any(), d => dto.Channels.Contains(d.SourceChannelCode)) //来源渠道
|
|
|
.WhereIF(dto.HotspotIds.Any(), d => dto.HotspotIds.Contains(d.HotspotId)) //热点类型
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.TransferPhone), d => d.TransferPhone.Contains(dto.TransferPhone!)) //转接号码
|
|
|
- //.WhereIF(dto.OrgCodes.Any(), d => d.Workflow.Assigns.Any(s => dto.OrgCodes.Contains(s.OrgCode)))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.TransferPhone), d => d.TransferPhone == dto.TransferPhone!) //转接号码
|
|
|
+ //.WhereIF(dto.OrgCodes.Any(), d => d.Workflow.Assigns.Any(s => dto.OrgCodes.Contains(s.OrgCode)))
|
|
|
.WhereIF(dto.OrgCodes.Any(), d => dto.OrgCodes.Contains(d.ActualHandleOrgCode)) //接办部门
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.NameOrNo), d => d.AcceptorName.Contains(dto.NameOrNo!) || d.AcceptorStaffNo.Contains(dto.NameOrNo!)) //受理人/坐席
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.NameOrNo), d => d.AcceptorName == dto.NameOrNo! || d.AcceptorStaffNo == dto.NameOrNo!) //受理人/坐席
|
|
|
.WhereIF(dto.CreationTimeStart.HasValue, d => d.CreationTime >= dto.CreationTimeStart) //受理时间开始
|
|
|
.WhereIF(dto.CreationTimeEnd.HasValue, d => d.CreationTime <= dto.CreationTimeEnd) //受理时间结束
|
|
|
.WhereIF(dto.EmergencyLevels.Any(), d => dto.EmergencyLevels.Contains(d.EmergencyLevel)) //紧急程度
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.FromPhone), d => d.FromPhone.Contains(dto.FromPhone)) //来电号码
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.PhoneNo), d => d.Contact.Contains(dto.PhoneNo!)) //联系电话
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.FromPhone), d => d.FromPhone == dto.FromPhone) //来电号码
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.PhoneNo), d => d.Contact == dto.PhoneNo!) //联系电话
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.PushTypeCode), d => d.PushTypeCode == dto.PushTypeCode) //推送分类
|
|
|
.WhereIF(dto.ExpiredTimeStart.HasValue, d => d.ExpiredTime >= dto.ExpiredTimeStart) //超期时间开始
|
|
|
.WhereIF(dto.ExpiredTimeEnd.HasValue, d => d.ExpiredTime <= dto.ExpiredTimeEnd) //超期时间结束
|
|
|
.WhereIF(dto.Statuses.Any(), d => dto.Statuses.Contains(d.Status)) //工单状态
|
|
|
.WhereIF(dto.Statuses.Any(d => d == EOrderStatus.SpecialToUnAccept), d => d.Status <= EOrderStatus.SpecialToUnAccept)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.ActualHandlerName), d => d.ActualHandlerName.Contains(dto.ActualHandlerName)) //接办人
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.ActualHandlerName), d => d.ActualHandlerName == dto.ActualHandlerName) //接办人
|
|
|
.WhereIF(dto.IsScreen == true, d => d.OrderScreens.Any(x => x.Status != EScreenStatus.Refuse)) //有甄别
|
|
|
.WhereIF(dto.IsScreen == false, d => !d.OrderScreens.Any(x => x.Status != EScreenStatus.Refuse)) //无甄别
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.CurrentStepCode), d => d.ActualHandleStepCode == dto.CurrentStepCode) //当前办理节点
|
|
@@ -447,7 +447,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
.WhereIF(dto.IsOverTime == true, d => (d.ExpiredTime < DateTime.Now && d.Status < EOrderStatus.Filed) || (d.ExpiredTime < d.ActualHandleTime && d.Status >= EOrderStatus.Filed)) //是 超期
|
|
|
.WhereIF(dto.IsOverTime == false, d => (d.ExpiredTime > DateTime.Now && d.Status < EOrderStatus.Filed) || (d.ExpiredTime > d.ActualHandleTime && d.Status >= EOrderStatus.Filed)) //否 超期
|
|
|
.WhereIF(dto.IdentityType != null, d => d.IdentityType == dto.IdentityType) //来电主体
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.FromName), d => d.FromName.Contains(dto.FromName)) //来电人姓名
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.FromName), d => d.FromName == dto.FromName) //来电人姓名
|
|
|
.WhereIF(dto.AreaCodes.Any(), d => dto.AreaCodes.Contains(d.AreaCode)) //区域
|
|
|
.WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == true, x => x.IsProvince == true)
|
|
|
.WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == false, x => x.IsProvince == false)
|
|
@@ -461,22 +461,23 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
/// </summary>
|
|
|
/// <param name="dto"></param>
|
|
|
/// <returns></returns>
|
|
|
- public ISugarQueryable<Order,WorkflowStep> QueryUnsignedOrders(QueryUnsignedOrdersRequest dto) {
|
|
|
- if (dto.EndTime.HasValue)
|
|
|
- dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
- var IsCenter = _sessionContext.OrgIsCenter;
|
|
|
- return _orderRepository.Queryable()
|
|
|
- .LeftJoin<WorkflowStep>((x,ws)=>x.Id == ws.ExternalId)
|
|
|
- .WhereIF(dto.StartTime.HasValue, (x,ws) => ws.CreationTime >= dto.StartTime)
|
|
|
+ public ISugarQueryable<Order, WorkflowStep> QueryUnsignedOrders(QueryUnsignedOrdersRequest dto)
|
|
|
+ {
|
|
|
+ if (dto.EndTime.HasValue)
|
|
|
+ dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
+ var IsCenter = _sessionContext.OrgIsCenter;
|
|
|
+ return _orderRepository.Queryable()
|
|
|
+ .LeftJoin<WorkflowStep>((x, ws) => x.Id == ws.ExternalId)
|
|
|
+ .WhereIF(dto.StartTime.HasValue, (x, ws) => ws.CreationTime >= dto.StartTime)
|
|
|
.WhereIF(dto.EndTime.HasValue, (x, ws) => ws.CreationTime <= dto.EndTime)
|
|
|
.WhereIF(dto.Level == 0 && IsCenter == false, (x, ws) => ws.AcceptorOrgId.StartsWith(_sessionContext.OrgId))
|
|
|
- .WhereIF(dto.Level == 1,(x,ws)=> ws.AcceptorOrgId == _sessionContext.OrgId)
|
|
|
+ .WhereIF(dto.Level == 1, (x, ws) => ws.AcceptorOrgId == _sessionContext.OrgId)
|
|
|
.WhereIF(dto.Level == 2, (x, ws) => ws.AcceptorOrgId.StartsWith(_sessionContext.OrgId))
|
|
|
- .WhereIF(dto.Signed == 0 ,(x,ws)=>ws.Status == Share.Enums.FlowEngine.EWorkflowStepStatus.WaitForAccept)
|
|
|
+ .WhereIF(dto.Signed == 0, (x, ws) => ws.Status == Share.Enums.FlowEngine.EWorkflowStepStatus.WaitForAccept)
|
|
|
.WhereIF(dto.Signed == 1, (x, ws) => ws.Status == Share.Enums.FlowEngine.EWorkflowStepStatus.WaitForHandle)
|
|
|
- .Where((x,ws)=>ws.CountersignPosition == Share.Enums.FlowEngine.ECountersignPosition.None && x.Status > EOrderStatus.WaitForAccept)
|
|
|
- .OrderByDescending((x,ws) => ws.CreationTime);
|
|
|
- }
|
|
|
+ .Where((x, ws) => ws.CountersignPosition == Share.Enums.FlowEngine.ECountersignPosition.None && x.Status > EOrderStatus.WaitForAccept)
|
|
|
+ .OrderByDescending((x, ws) => ws.CreationTime);
|
|
|
+ }
|
|
|
|
|
|
/// <summary>
|
|
|
/// 信件来源统计
|
|
@@ -485,24 +486,24 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
/// <returns></returns>
|
|
|
public ISugarQueryable<Order> QueryOrderSource(QueryOrderSourceRequest dto)
|
|
|
{
|
|
|
- if (dto.EndTime.HasValue)
|
|
|
- dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
- return _orderRepository.Queryable()
|
|
|
- .WhereIF(dto.StartTime.HasValue, d => d.CreationTime >= dto.StartTime)
|
|
|
- .WhereIF(dto.EndTime.HasValue, d => d.CreationTime <= dto.EndTime)
|
|
|
- .WhereIF(dto.IdentityType.HasValue , d=>d.IdentityType == dto.IdentityType)
|
|
|
- .Where(d=> d.SourceChannel != null && d.SourceChannel !="");
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 信件来源统计列表
|
|
|
- /// </summary>
|
|
|
- /// <param name="dto"></param>
|
|
|
- /// <returns></returns>
|
|
|
- public async Task<List<OrderSourceHeaderVo>> QueryOrderSourceList(QueryOrderSourceRequest dto)
|
|
|
+ if (dto.EndTime.HasValue)
|
|
|
+ dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
+ return _orderRepository.Queryable()
|
|
|
+ .WhereIF(dto.StartTime.HasValue, d => d.CreationTime >= dto.StartTime)
|
|
|
+ .WhereIF(dto.EndTime.HasValue, d => d.CreationTime <= dto.EndTime)
|
|
|
+ .WhereIF(dto.IdentityType.HasValue, d => d.IdentityType == dto.IdentityType)
|
|
|
+ .Where(d => d.SourceChannel != null && d.SourceChannel != "");
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 信件来源统计列表
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public async Task<List<OrderSourceHeaderVo>> QueryOrderSourceList(QueryOrderSourceRequest dto)
|
|
|
{
|
|
|
- if (dto.EndTime.HasValue)
|
|
|
- dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
+ if (dto.EndTime.HasValue)
|
|
|
+ dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
var data = await _orderRepository.Queryable()
|
|
|
.WhereIF(dto.StartTime.HasValue, d => d.CreationTime >= dto.StartTime)
|
|
|
.WhereIF(dto.EndTime.HasValue, d => d.CreationTime <= dto.EndTime)
|
|
@@ -510,7 +511,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
.Where(d => d.SourceChannel != null && d.SourceChannel != "")
|
|
|
.GroupBy(d => new { Time = d.CreationTime.ToString("yyyy-MM-dd"), d.SourceChannel })
|
|
|
.Select(d => new OrderSourceHeaderVo
|
|
|
- {
|
|
|
+ {
|
|
|
Time = d.CreationTime.ToString("yyyy-MM-dd"),
|
|
|
Phone = SqlFunc.AggregateSum(SqlFunc.IIF(d.SourceChannelCode == "RGDH", 1, 0)),
|
|
|
Web = SqlFunc.AggregateSum(SqlFunc.IIF(d.SourceChannelCode == "YTW", 1, 0)),
|
|
@@ -530,7 +531,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
Platform110 = SqlFunc.AggregateSum(SqlFunc.IIF(d.SourceChannelCode == "YB110", 1, 0)),
|
|
|
NoService = SqlFunc.AggregateSum(SqlFunc.IIF(d.SourceChannelCode == "SMZXBNCS", 1, 0)),
|
|
|
Iyb = SqlFunc.AggregateSum(SqlFunc.IIF(d.SourceChannelCode == "IYB", 1, 0))
|
|
|
- }).ToListAsync() ;
|
|
|
+ }).ToListAsync();
|
|
|
var totalVo = new OrderSourceHeaderVo()
|
|
|
{
|
|
|
Time = "合计",
|
|
@@ -554,27 +555,28 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
Iyb = data.Sum(x => x.Iyb)
|
|
|
};
|
|
|
data.Add(totalVo);
|
|
|
- return data;
|
|
|
- }
|
|
|
-
|
|
|
- public ISugarQueryable<Order> QueryOrderSourceDetail(QueryOrderSourceDetailRequest dto) {
|
|
|
-
|
|
|
- return _orderRepository.Queryable()
|
|
|
- .WhereIF(string.IsNullOrEmpty(dto.SourceChannel),d=>d.SourceChannel == dto.SourceChannel)
|
|
|
- .WhereIF(dto.Time.HasValue,d=>d.CreationTime.ToString("yyyy-MM-dd") == dto.Time.Value.ToString("yyyy-MM-dd"))
|
|
|
- .WhereIF(dto.IdentityType.HasValue, d => d.IdentityType == dto.IdentityType)
|
|
|
- .Where(d => d.SourceChannel != null && d.SourceChannel != "");
|
|
|
- }
|
|
|
-
|
|
|
- #region private
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 接受外部工单(除省平台)
|
|
|
- /// </summary>
|
|
|
- /// <param name="dto"></param>
|
|
|
- /// <param name="cancellationToken"></param>
|
|
|
- /// <returns></returns>
|
|
|
- private async Task<AddOrderResponse> ReceiveOrderFromOtherPlatformAsync(AddOrderDto dto, List<FileDto> files,
|
|
|
+ return data;
|
|
|
+ }
|
|
|
+
|
|
|
+ public ISugarQueryable<Order> QueryOrderSourceDetail(QueryOrderSourceDetailRequest dto)
|
|
|
+ {
|
|
|
+
|
|
|
+ return _orderRepository.Queryable()
|
|
|
+ .WhereIF(string.IsNullOrEmpty(dto.SourceChannel), d => d.SourceChannel == dto.SourceChannel)
|
|
|
+ .WhereIF(dto.Time.HasValue, d => d.CreationTime.ToString("yyyy-MM-dd") == dto.Time.Value.ToString("yyyy-MM-dd"))
|
|
|
+ .WhereIF(dto.IdentityType.HasValue, d => d.IdentityType == dto.IdentityType)
|
|
|
+ .Where(d => d.SourceChannel != null && d.SourceChannel != "");
|
|
|
+ }
|
|
|
+
|
|
|
+ #region private
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 接受外部工单(除省平台)
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <param name="cancellationToken"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ private async Task<AddOrderResponse> ReceiveOrderFromOtherPlatformAsync(AddOrderDto dto, List<FileDto> files,
|
|
|
ISessionContext current, CancellationToken cancellationToken)
|
|
|
{
|
|
|
if (string.IsNullOrEmpty(dto.ExternalId))
|