|
@@ -350,7 +350,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
(step.FlowAssignType == EFlowAssignType.Role && !string.IsNullOrEmpty(step.RoleId) &&
|
|
|
_sessionContextProvider.SessionContext.Roles.Contains(step.RoleId))))
|
|
|
.Any())
|
|
|
- .WhereIF(orgLevel == 2 || orgLevel == 1, d => SqlFunc.Subqueryable<WorkflowStep>()
|
|
|
+ .WhereIF(orgLevel == 2 || orgLevel == 1, d => SqlFunc.Subqueryable<WorkflowStep>()
|
|
|
.Where(step => step.ExternalId == d.Id &&
|
|
|
step.Status != EWorkflowStepStatus.Handled &&
|
|
|
(!string.IsNullOrEmpty(step.HandlerOrgId) && step.HandlerOrgId.StartsWith(orgCode)))
|
|
@@ -368,16 +368,16 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
.WhereIF(dto.ExpiredTimeStart.HasValue, d => d.ExpiredTime >= dto.ExpiredTimeStart) //超期时间开始
|
|
|
.WhereIF(dto.ExpiredTimeEnd.HasValue, d => d.ExpiredTime <= dto.ExpiredTimeEnd) //超期时间结束
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName), d => d.ActualHandleOrgName.Contains(dto.ActualHandleOrgName)) //接办部门
|
|
|
- //&& stTime >= d.ExpiredTime.Value && stTime2 <= d.ExpiredTime.Value
|
|
|
- //.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)
|
|
|
+ //&& stTime >= d.ExpiredTime.Value && stTime2 <= d.ExpiredTime.Value
|
|
|
+ //.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)
|
|
|
.Where(d => d.Status < EOrderStatus.Filed && dateTime > d.NearlyExpiredTime && dateTime < d.ExpiredTime)
|
|
|
.OrderByIF(dto is { SortField: "no", SortRule: 0 }, x => x.No, OrderByType.Asc) //工单编号升序
|
|
|
.OrderByIF(dto is { SortField: "no", SortRule: 1 }, x => x.No, OrderByType.Desc) //工单编号降序
|
|
|
- .OrderByIF(dto is { SortField: "isProvinceText", SortRule: 0 }, x => x.IsProvince, OrderByType.Asc)//是否省工单升序
|
|
|
- .OrderByIF(dto is { SortField: "isProvinceText", SortRule: 1 }, x => x.IsProvince, OrderByType.Desc)//是否省工单降序
|
|
|
- .OrderByIF(dto is { SortField: "currentStepName", SortRule: 0 }, x => x.CurrentStepName, OrderByType.Asc)//当前节点升序
|
|
|
- .OrderByIF(dto is { SortField: "currentStepName", SortRule: 1 }, x => x.CurrentStepName, OrderByType.Desc)//当前节点降序
|
|
|
+ .OrderByIF(dto is { SortField: "isProvinceText", SortRule: 0 }, x => x.IsProvince, OrderByType.Asc) //是否省工单升序
|
|
|
+ .OrderByIF(dto is { SortField: "isProvinceText", SortRule: 1 }, x => x.IsProvince, OrderByType.Desc) //是否省工单降序
|
|
|
+ .OrderByIF(dto is { SortField: "currentStepName", SortRule: 0 }, x => x.CurrentStepName, OrderByType.Asc) //当前节点升序
|
|
|
+ .OrderByIF(dto is { SortField: "currentStepName", SortRule: 1 }, x => x.CurrentStepName, OrderByType.Desc) //当前节点降序
|
|
|
.OrderByIF(dto is { SortField: "delayText", SortRule: 0 }, x => x.OrderDelays.Count, OrderByType.Asc) //是否延期升序
|
|
|
.OrderByIF(dto is { SortField: "delayText", SortRule: 1 }, x => x.OrderDelays.Count, OrderByType.Desc) //是否延期升序
|
|
|
.OrderByIF(dto is { SortField: "statusText", SortRule: 0 }, x => x.Status, OrderByType.Asc) //工单状态升序
|
|
@@ -386,18 +386,18 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
.OrderByIF(dto is { SortField: "startTime", SortRule: 1 }, x => x.StartTime, OrderByType.Desc) //受理时间降序
|
|
|
.OrderByIF(dto is { SortField: "expiredTime", SortRule: 0 }, x => x.ExpiredTime, OrderByType.Asc) //期满时间升序
|
|
|
.OrderByIF(dto is { SortField: "expiredTime", SortRule: 1 }, x => x.ExpiredTime, OrderByType.Desc) //期满时间降序
|
|
|
- .OrderByIF(dto is { SortField: "actualHandleOrgName", SortRule: 0 }, x => x.ActualHandleOrgName, OrderByType.Asc)// 接办部门升序
|
|
|
- .OrderByIF(dto is { SortField: "actualHandleOrgName", SortRule: 1 }, x => x.ActualHandleOrgName, OrderByType.Desc)// 接办部门降序
|
|
|
+ .OrderByIF(dto is { SortField: "actualHandleOrgName", SortRule: 0 }, x => x.ActualHandleOrgName, OrderByType.Asc) // 接办部门升序
|
|
|
+ .OrderByIF(dto is { SortField: "actualHandleOrgName", SortRule: 1 }, x => x.ActualHandleOrgName, OrderByType.Desc) // 接办部门降序
|
|
|
.OrderByIF(dto is { SortField: "acceptType", SortRule: 0 }, x => x.AcceptTypeCode, OrderByType.Asc) //受理类型升序
|
|
|
.OrderByIF(dto is { SortField: "acceptType", SortRule: 1 }, x => x.AcceptTypeCode, OrderByType.Desc) //受理类型降序
|
|
|
.OrderByIF(dto is { SortField: "counterSignTypeText", SortRule: 0 }, x => x.CounterSignType, OrderByType.Asc) //是否会签升序
|
|
|
.OrderByIF(dto is { SortField: "counterSignTypeText", SortRule: 1 }, x => x.CounterSignType, OrderByType.Desc) //是否会签降序
|
|
|
.OrderByIF(dto is { SortField: "orgLevelOneName", SortRule: 0 }, x => x.OrgLevelOneName, OrderByType.Asc) //一级部门升序
|
|
|
- .OrderByIF(dto is { SortField: "orgLevelOneName", SortRule: 1 }, x => x.OrgLevelOneName, OrderByType.Desc)//一级部门降序
|
|
|
+ .OrderByIF(dto is { SortField: "orgLevelOneName", SortRule: 1 }, x => x.OrgLevelOneName, OrderByType.Desc) //一级部门降序
|
|
|
.OrderByIF(dto is { SortField: "hotspotName", SortRule: 0 }, x => x.HotspotId, OrderByType.Asc) //热点升序
|
|
|
.OrderByIF(dto is { SortField: "hotspotName", SortRule: 1 }, x => x.HotspotId, OrderByType.Desc) //热点降序
|
|
|
- .OrderByIF(dto is { SortField: "acceptorName", SortRule: 0 }, x => x.AcceptorName, OrderByType.Asc)// 受理人升序
|
|
|
- .OrderByIF(dto is { SortField: "acceptorName", SortRule: 1 }, x => x.AcceptorName, OrderByType.Desc);// 受理人升序
|
|
|
+ .OrderByIF(dto is { SortField: "acceptorName", SortRule: 0 }, x => x.AcceptorName, OrderByType.Asc) // 受理人升序
|
|
|
+ .OrderByIF(dto is { SortField: "acceptorName", SortRule: 1 }, x => x.AcceptorName, OrderByType.Desc); // 受理人升序
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -764,10 +764,10 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Hotspot), d => d.HotspotSpliceName != null && d.HotspotSpliceName.Contains(dto.Hotspot))
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.OrgLevelOneName), d => d.OrgLevelOneName.Contains(dto.OrgLevelOneName)) //一级部门
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.FromPhone), d => d.FromPhone == dto.FromPhone) //来电号码
|
|
|
- //.WhereIF(!string.IsNullOrEmpty(dto.PubMan),
|
|
|
- // d => d.AcceptorName.Contains(dto.PubMan!) || d.AcceptorStaffNo.Contains(dto.PubMan!))
|
|
|
- //.WhereIF(dto.PubRange == EPublicState.Pub, d => d.OrderPublish.PublishState)
|
|
|
- //.WhereIF(dto.PubRange == EPublicState.NoPub, d => !d.OrderPublish.PublishState)
|
|
|
+ //.WhereIF(!string.IsNullOrEmpty(dto.PubMan),
|
|
|
+ // d => d.AcceptorName.Contains(dto.PubMan!) || d.AcceptorStaffNo.Contains(dto.PubMan!))
|
|
|
+ //.WhereIF(dto.PubRange == EPublicState.Pub, d => d.OrderPublish.PublishState)
|
|
|
+ //.WhereIF(dto.PubRange == EPublicState.NoPub, d => !d.OrderPublish.PublishState)
|
|
|
.WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == true, d => d.Source == ESource.ProvinceStraight)
|
|
|
.WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == false, d => d.Source != ESource.ProvinceStraight)
|
|
|
//.WhereIF(dto.FiledType != null && dto.FiledType == FiledType.CenterFiled, d => d.ProcessType == EProcessType.Zhiban)
|
|
@@ -851,7 +851,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
public async Task<(int, IList<PublishedOrderStatisticsDto>)> QueryPublishedOrderAsync(QueryOrderPublishStatisticsDto dto, bool isFull)
|
|
|
{
|
|
|
var orders = await _orderRepository.Queryable()
|
|
|
- .LeftJoin<User>((order, user) => order.WaitForPublisherId == user.Id)
|
|
|
+ .LeftJoin<User>((order, user) => order.WaitForPublisherId == user.Id)
|
|
|
.Where((order, user) => !string.IsNullOrEmpty(order.WaitForPublisherId))
|
|
|
.WhereIF(dto.ProcessType != null && dto.ProcessType == EProcessType.Zhiban, (order, user) => order.FileOrgIsCenter == true)
|
|
|
.WhereIF(dto.ProcessType != null && dto.ProcessType == EProcessType.Jiaoban, (order, user) => order.FileOrgIsCenter == false)
|
|
@@ -894,16 +894,16 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
}
|
|
|
|
|
|
var res = (from t1 in items
|
|
|
- join t2 in orders on t1.Name equals t2.Name into t1_t2
|
|
|
- from item in t1_t2.DefaultIfEmpty()
|
|
|
- select new PublishedOrderStatisticsDto
|
|
|
- {
|
|
|
- Name = t1.Name,
|
|
|
- PublishTime = t1.PublishTime,
|
|
|
- WaitCount = t1_t2.Select(x => x.WaitCount).FirstOrDefault(),
|
|
|
- PublicCount = t1.PublicCount,
|
|
|
- PrivateCount = t1.PrivateCount
|
|
|
- }).ToList();
|
|
|
+ join t2 in orders on t1.Name equals t2.Name into t1_t2
|
|
|
+ from item in t1_t2.DefaultIfEmpty()
|
|
|
+ select new PublishedOrderStatisticsDto
|
|
|
+ {
|
|
|
+ Name = t1.Name,
|
|
|
+ PublishTime = t1.PublishTime,
|
|
|
+ WaitCount = t1_t2.Select(x => x.WaitCount).FirstOrDefault(),
|
|
|
+ PublicCount = t1.PublicCount,
|
|
|
+ PrivateCount = t1.PrivateCount
|
|
|
+ }).ToList();
|
|
|
|
|
|
return (total, res);
|
|
|
}
|
|
@@ -931,7 +931,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
|
|
|
var query = _orderRepository.Queryable()
|
|
|
.Includes(order => order.OrderPublish)
|
|
|
- .Where(order => order.OrderPublish.CreationTime >= dto.StartTime && order.OrderPublish.CreationTime <= dto.EndTime && order.ActualHandleOrgName != null)
|
|
|
+ .Where(order => order.OrderPublish.CreationTime >= dto.StartTime && order.OrderPublish.CreationTime <= dto.EndTime &&
|
|
|
+ order.ActualHandleOrgName != null)
|
|
|
.GroupBy(order => new { Name = order.ActualHandleOrgName, PublishTime = order.CreationTime.ToString("YYYY-MM-DD") })
|
|
|
.Select(order => new PublishedOrderStatisticsDto
|
|
|
{
|
|
@@ -952,16 +953,16 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
}
|
|
|
|
|
|
var res = (from t1 in items
|
|
|
- join t2 in orders on t1.Name equals t2.Name into t1_t2
|
|
|
- from item in t1_t2.DefaultIfEmpty()
|
|
|
- select new PublishedOrderStatisticsDto
|
|
|
- {
|
|
|
- Name = t1.Name,
|
|
|
- PublishTime = t1.PublishTime,
|
|
|
- WaitCount = t1_t2.Select(x => x.WaitCount).FirstOrDefault(),
|
|
|
- PublicCount = t1.PublicCount,
|
|
|
- PrivateCount = t1.PrivateCount
|
|
|
- }).ToList();
|
|
|
+ join t2 in orders on t1.Name equals t2.Name into t1_t2
|
|
|
+ from item in t1_t2.DefaultIfEmpty()
|
|
|
+ select new PublishedOrderStatisticsDto
|
|
|
+ {
|
|
|
+ Name = t1.Name,
|
|
|
+ PublishTime = t1.PublishTime,
|
|
|
+ WaitCount = t1_t2.Select(x => x.WaitCount).FirstOrDefault(),
|
|
|
+ PublicCount = t1.PublicCount,
|
|
|
+ PrivateCount = t1.PrivateCount
|
|
|
+ }).ToList();
|
|
|
|
|
|
return (total, res);
|
|
|
}
|
|
@@ -1023,6 +1024,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
_mapper.Map(detaildto, visit.OrderVisitDetails[i]);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
var seat = visit.OrderVisitDetails.FirstOrDefault(x => x.VisitTarget == EVisitTarget.Seat);
|
|
|
seat.SeatEvaluate = ESeatEvaluate.DefaultSatisfied;
|
|
|
seat.VoiceEvaluate = EVoiceEvaluate.DefaultSatisfied;
|
|
@@ -1464,15 +1466,15 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
.WhereIF(dto.IsReTransact.HasValue && dto.IsReTransact.Value == false, d => d.ReTransactNum == null || d.ReTransactNum == 0)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No.Contains(dto.No)) //工单编码
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.AcceptTypeCode == dto.AcceptType) //受理类型
|
|
|
- //.WhereIF(dto.AcceptTypes.Any(), d => dto.AcceptTypes.Contains(d.AcceptTypeCode)) //受理类型
|
|
|
+ //.WhereIF(dto.AcceptTypes.Any(), d => dto.AcceptTypes.Contains(d.AcceptTypeCode)) //受理类型
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Channel), d => d.SourceChannelCode == dto.Channel)
|
|
|
//.WhereIF(dto.Channels.Any(), d => dto.Channels.Contains(d.SourceChannelCode)) //来源渠道
|
|
|
//.WhereIF(dto.HotspotIds.Any(), d => dto.HotspotIds.Contains(d.HotspotId)) //热点类型
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Hotspot), d => d.HotspotSpliceName != null && d.HotspotSpliceName.Contains(dto.Hotspot))
|
|
|
.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.OrgId), d => d.CurrentHandleOrgId == dto.OrgId)//接办部门
|
|
|
+ //.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.OrgId), d => d.CurrentHandleOrgId == dto.OrgId)//接办部门
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.OrgLevelOneName), d => d.OrgLevelOneName.Contains(dto.OrgLevelOneName)) //一级部门
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName), d => d.ActualHandleOrgName.Contains(dto.ActualHandleOrgName)) //接办部门(综合查询模糊)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.NameOrNo), d => d.AcceptorName == dto.NameOrNo! || d.AcceptorStaffNo == dto.NameOrNo!) //受理人/坐席
|
|
@@ -1480,16 +1482,16 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
.WhereIF(dto.CreationTimeEnd.HasValue, d => d.CreationTime <= dto.CreationTimeEnd) //受理时间结束
|
|
|
.WhereIF(dto.StartTimeStart.HasValue, d => d.StartTime >= dto.StartTimeStart) //流程开启时间开始
|
|
|
.WhereIF(dto.StartTimeEnd.HasValue, d => d.StartTime <= dto.StartTimeEnd) //流程开启时间结束
|
|
|
- //.WhereIF(dto.EmergencyLevels.Any(), d => dto.EmergencyLevels.Contains(d.EmergencyLevel)) //紧急程度
|
|
|
+ //.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.PushTypeCode), d => d.PushTypeCode == dto.PushTypeCode) //推送分类
|
|
|
+ //.WhereIF(!string.IsNullOrEmpty(dto.PushTypeCode), d => d.PushTypeCode == dto.PushTypeCode) //推送分类
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.PushTypeCode), x => x.OrderPushTypes.Any(opt => opt.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 => dto.Statuses.Contains(d.Status)) //工单状态
|
|
|
.WhereIF(dto.Status.HasValue, d => d.Status == dto.Status) //工单状态
|
|
|
- //.WhereIF(dto.Statuses.Any(d => d == EOrderStatus.SpecialToUnAccept), d => d.Status <= EOrderStatus.SpecialToUnAccept)
|
|
|
+ //.WhereIF(dto.Statuses.Any(d => d == EOrderStatus.SpecialToUnAccept), d => d.Status <= EOrderStatus.SpecialToUnAccept)
|
|
|
.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)) //无甄别
|
|
@@ -1504,8 +1506,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
(d.ExpiredTime > d.FiledTime && d.Status >= EOrderStatus.Filed)) //否 超期
|
|
|
.WhereIF(dto.IdentityType != null, d => d.IdentityType == dto.IdentityType) //来电主体
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.FromName), d => d.FromName == dto.FromName) //来电人姓名
|
|
|
- //.WhereIF(dto.AreaCodes.Any(), d => dto.AreaCodes.Contains(d.AreaCode)) //区域
|
|
|
- //.WhereIF(!string.IsNullOrEmpty(dto.AreaCode), d => d.AreaCode == dto.AreaCode)//区域
|
|
|
+ //.WhereIF(dto.AreaCodes.Any(), d => dto.AreaCodes.Contains(d.AreaCode)) //区域
|
|
|
+ //.WhereIF(!string.IsNullOrEmpty(dto.AreaCode), d => d.AreaCode == dto.AreaCode)//区域
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.AreaCode) && dto.AreaCode.LastIndexOf("00") > 0,
|
|
|
d => d.AreaCode.StartsWith(SqlFunc.Substring(dto.AreaCode, 0, 4)))
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.AreaCode) && dto.AreaCode.LastIndexOf("00") <= 0, d => d.AreaCode.StartsWith(dto.AreaCode))
|
|
@@ -1521,14 +1523,14 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
d.SourceChannelCode == "SZMHD" && d.IsProvince == true) //政民互动
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.ProvinceChannel) && dto.ProvinceChannel == "3", d => d.Source == ESource.ProvinceStraight &&
|
|
|
d.SourceChannelCode == "S12345" && d.IsProvince == true) //省12345
|
|
|
- //.WhereIF(!string.IsNullOrEmpty(dto.ContentRetrieval),d => d.Title.Contains(dto.ContentRetrieval) || d.Content.Contains(dto.ContentRetrieval) || d.FileOpinion.Contains(dto.ContentRetrieval) || d.ActualOpinion.Contains(dto.ContentRetrieval))
|
|
|
+ //.WhereIF(!string.IsNullOrEmpty(dto.ContentRetrieval),d => d.Title.Contains(dto.ContentRetrieval) || d.Content.Contains(dto.ContentRetrieval) || d.FileOpinion.Contains(dto.ContentRetrieval) || d.ActualOpinion.Contains(dto.ContentRetrieval))
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.ContentRetrieval), d => d.Content.Contains(dto.ContentRetrieval!))
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.FileOption), d => d.FileOpinion.Contains(dto.FileOption!))
|
|
|
.WhereIF(dto.IsSgin.HasValue && dto.IsSgin == true, d => d.CurrentStepAcceptTime != null)
|
|
|
.WhereIF(dto.IsSgin.HasValue && dto.IsSgin == false, d => d.CurrentStepAcceptTime == null)
|
|
|
.WhereIF(dto.FiledType is FiledType.CenterFiled, d => d.FileOrgIsCenter == true) //d => d.ProcessType == EProcessType.Zhiban
|
|
|
.WhereIF(dto.FiledType is FiledType.OrgFiled, d => d.FileOrgIsCenter == false) //d => d.ProcessType == EProcessType.Jiaoban
|
|
|
- //.WhereIF(!string.IsNullOrEmpty(dto.OrderTagCode), d => d.OrderTagCode == dto.OrderTagCode)// 工单标签
|
|
|
+ //.WhereIF(!string.IsNullOrEmpty(dto.OrderTagCode), d => d.OrderTagCode == dto.OrderTagCode)// 工单标签
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.OrderTagCode), d => d.OrderTags.Any(ot => ot.DicDataValue == dto.OrderTagCode)) //工单标签
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.FocusOnEvents), d => SqlFunc.SplitIn(d.FocusOnEvents, dto.FocusOnEvents))
|
|
|
.OrderByIF(string.IsNullOrEmpty(dto.SortField), d => d.CreationTime, OrderByType.Desc) //默认排序时间为创建时间
|
|
@@ -1816,7 +1818,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
.Where(x => x.OrderSpecial.SpecialType == ESpecialType.ReTransact || x.OrderSpecial.SpecialType == ESpecialType.SendBack)
|
|
|
.Where(x => x.OrderSpecial.CreationTime >= dto.StartTime)
|
|
|
.Where(x => x.OrderSpecial.CreationTime <= dto.EndTime)
|
|
|
- .WhereIF(!_sessionContext.OrgIsCenter,x=>x.OrgId.StartsWith(_sessionContext.RequiredOrgId))
|
|
|
+ .WhereIF(!_sessionContext.OrgIsCenter, x => x.OrgId.StartsWith(_sessionContext.RequiredOrgId))
|
|
|
.MergeTable()
|
|
|
.GroupBy(x => new { Time = x.OrderSpecial.CreationTime.ToString("yyyy-MM-dd"), x.OrgId, x.OrgName })
|
|
|
.Select(x => new OrderReTransactVo
|
|
@@ -1942,9 +1944,9 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
if (IsCenter && list != null)
|
|
|
{
|
|
|
data = await list.GroupBy(x => new
|
|
|
- {
|
|
|
- VisitOrgCode = x.VisitOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6"))
|
|
|
- })
|
|
|
+ {
|
|
|
+ VisitOrgCode = x.VisitOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6"))
|
|
|
+ })
|
|
|
.Select(x => new VisitAndOrgSatisfactionStatisticsDto()
|
|
|
{
|
|
|
OrgCode = x.VisitOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6")),
|
|
@@ -2001,9 +2003,9 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
else
|
|
|
{
|
|
|
data = await list.GroupBy(x => new
|
|
|
- {
|
|
|
- VisitOrgCode = x.VisitOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>(orgLevelStr))
|
|
|
- })
|
|
|
+ {
|
|
|
+ VisitOrgCode = x.VisitOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>(orgLevelStr))
|
|
|
+ })
|
|
|
.Select(x => new VisitAndOrgSatisfactionStatisticsDto()
|
|
|
{
|
|
|
OrgCode = x.VisitOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>(orgLevelStr)),
|
|
@@ -2070,20 +2072,20 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
if (IsCenter)
|
|
|
{
|
|
|
oldData = await query.GroupBy((x, so) => new
|
|
|
- {
|
|
|
- VisitOrgCode = so.Id.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6"))
|
|
|
- }).Select((x, so) => new VisitAndOrgSatisfactionStatisticsDto()
|
|
|
- {
|
|
|
- OrgCode = so.Id.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6")),
|
|
|
- TotalSumCount = SqlFunc.AggregateSum(x.Total),
|
|
|
- VerySatisfiedCount = SqlFunc.AggregateSum(x.VerySatisfaction), //非常满意数
|
|
|
- SatisfiedCount = SqlFunc.AggregateSum(x.Satisfaction), //满意数
|
|
|
- RegardedAsSatisfiedCount = SqlFunc.AggregateSum(x.TreatSatisfaction), //视为满意
|
|
|
- DefaultSatisfiedCount = SqlFunc.AggregateSum(x.DefaultSatisfaction), //默认满意
|
|
|
- NoSatisfiedCount = SqlFunc.AggregateSum(x.Dissatisfaction), //不满意
|
|
|
- NoEvaluateCount = SqlFunc.AggregateSum(x.NotEvaluated), //未做评价
|
|
|
- NoPutThroughCount = SqlFunc.AggregateSum(x.BlockCall), //未接通
|
|
|
- })
|
|
|
+ {
|
|
|
+ VisitOrgCode = so.Id.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6"))
|
|
|
+ }).Select((x, so) => new VisitAndOrgSatisfactionStatisticsDto()
|
|
|
+ {
|
|
|
+ OrgCode = so.Id.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6")),
|
|
|
+ TotalSumCount = SqlFunc.AggregateSum(x.Total),
|
|
|
+ VerySatisfiedCount = SqlFunc.AggregateSum(x.VerySatisfaction), //非常满意数
|
|
|
+ SatisfiedCount = SqlFunc.AggregateSum(x.Satisfaction), //满意数
|
|
|
+ RegardedAsSatisfiedCount = SqlFunc.AggregateSum(x.TreatSatisfaction), //视为满意
|
|
|
+ DefaultSatisfiedCount = SqlFunc.AggregateSum(x.DefaultSatisfaction), //默认满意
|
|
|
+ NoSatisfiedCount = SqlFunc.AggregateSum(x.Dissatisfaction), //不满意
|
|
|
+ NoEvaluateCount = SqlFunc.AggregateSum(x.NotEvaluated), //未做评价
|
|
|
+ NoPutThroughCount = SqlFunc.AggregateSum(x.BlockCall), //未接通
|
|
|
+ })
|
|
|
.MergeTable()
|
|
|
.LeftJoin<SystemOrganize>((it, o) => it.OrgCode == o.Id)
|
|
|
.Select((it, o) => new VisitAndOrgSatisfactionStatisticsDto()
|
|
@@ -2106,20 +2108,20 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
else
|
|
|
{
|
|
|
oldData = await query.GroupBy((x, so) => new
|
|
|
- {
|
|
|
- VisitOrgCode = so.Id
|
|
|
- }).Select((x, so) => new VisitAndOrgSatisfactionStatisticsDto()
|
|
|
- {
|
|
|
- OrgCode = so.Id, //.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>(orgLevelStr)),
|
|
|
- TotalSumCount = SqlFunc.AggregateSum(x.Total),
|
|
|
- VerySatisfiedCount = SqlFunc.AggregateSum(x.VerySatisfaction), //非常满意数
|
|
|
- SatisfiedCount = SqlFunc.AggregateSum(x.Satisfaction), //满意数
|
|
|
- RegardedAsSatisfiedCount = SqlFunc.AggregateSum(x.TreatSatisfaction), //视为满意
|
|
|
- DefaultSatisfiedCount = SqlFunc.AggregateSum(x.DefaultSatisfaction), //默认满意
|
|
|
- NoSatisfiedCount = SqlFunc.AggregateSum(x.Dissatisfaction), //不满意
|
|
|
- NoEvaluateCount = SqlFunc.AggregateSum(x.NotEvaluated), //未做评价
|
|
|
- NoPutThroughCount = SqlFunc.AggregateSum(x.BlockCall), //未接通
|
|
|
- })
|
|
|
+ {
|
|
|
+ VisitOrgCode = so.Id
|
|
|
+ }).Select((x, so) => new VisitAndOrgSatisfactionStatisticsDto()
|
|
|
+ {
|
|
|
+ OrgCode = so.Id, //.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>(orgLevelStr)),
|
|
|
+ TotalSumCount = SqlFunc.AggregateSum(x.Total),
|
|
|
+ VerySatisfiedCount = SqlFunc.AggregateSum(x.VerySatisfaction), //非常满意数
|
|
|
+ SatisfiedCount = SqlFunc.AggregateSum(x.Satisfaction), //满意数
|
|
|
+ RegardedAsSatisfiedCount = SqlFunc.AggregateSum(x.TreatSatisfaction), //视为满意
|
|
|
+ DefaultSatisfiedCount = SqlFunc.AggregateSum(x.DefaultSatisfaction), //默认满意
|
|
|
+ NoSatisfiedCount = SqlFunc.AggregateSum(x.Dissatisfaction), //不满意
|
|
|
+ NoEvaluateCount = SqlFunc.AggregateSum(x.NotEvaluated), //未做评价
|
|
|
+ NoPutThroughCount = SqlFunc.AggregateSum(x.BlockCall), //未接通
|
|
|
+ })
|
|
|
.MergeTable().LeftJoin<SystemOrganize>((it, o) => it.OrgCode == o.Id && (o.Level == orgLevel || o.Level == (orgLevel + 1)))
|
|
|
.Select((it, o) => new VisitAndOrgSatisfactionStatisticsDto()
|
|
|
{
|
|
@@ -2139,22 +2141,22 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
}
|
|
|
|
|
|
data = (from t1 in data
|
|
|
- join t2 in oldData on t1.OrgCode equals t2.OrgCode into t1_t2
|
|
|
- from item in t1_t2.DefaultIfEmpty()
|
|
|
- select new VisitAndOrgSatisfactionStatisticsDto()
|
|
|
- {
|
|
|
- OrgName = t1.OrgName,
|
|
|
- OrgCode = t1.OrgCode,
|
|
|
- OrgType = t1.OrgType,
|
|
|
- TotalSumCount = t1.TotalSumCount + t1_t2.Select(x => x.TotalSumCount).FirstOrDefault(),
|
|
|
- VerySatisfiedCount = t1.VerySatisfiedCount + t1_t2.Select(x => x.VerySatisfiedCount).FirstOrDefault(), //非常满意数
|
|
|
- SatisfiedCount = t1.SatisfiedCount + t1_t2.Select(x => x.SatisfiedCount).FirstOrDefault(), //满意数
|
|
|
- RegardedAsSatisfiedCount = t1.RegardedAsSatisfiedCount + t1_t2.Select(x => x.RegardedAsSatisfiedCount).FirstOrDefault(), //视为满意
|
|
|
- DefaultSatisfiedCount = t1.DefaultSatisfiedCount + t1_t2.Select(x => x.DefaultSatisfiedCount).FirstOrDefault(), //默认满意
|
|
|
- NoSatisfiedCount = t1.NoSatisfiedCount + t1_t2.Select(x => x.NoSatisfiedCount).FirstOrDefault(), //不满意
|
|
|
- NoEvaluateCount = t1.NoEvaluateCount + t1_t2.Select(x => x.NoEvaluateCount).FirstOrDefault(), //未做评价
|
|
|
- NoPutThroughCount = t1.NoPutThroughCount + t1_t2.Select(x => x.NoPutThroughCount).FirstOrDefault(), //未接通
|
|
|
- }).ToList();
|
|
|
+ join t2 in oldData on t1.OrgCode equals t2.OrgCode into t1_t2
|
|
|
+ from item in t1_t2.DefaultIfEmpty()
|
|
|
+ select new VisitAndOrgSatisfactionStatisticsDto()
|
|
|
+ {
|
|
|
+ OrgName = t1.OrgName,
|
|
|
+ OrgCode = t1.OrgCode,
|
|
|
+ OrgType = t1.OrgType,
|
|
|
+ TotalSumCount = t1.TotalSumCount + t1_t2.Select(x => x.TotalSumCount).FirstOrDefault(),
|
|
|
+ VerySatisfiedCount = t1.VerySatisfiedCount + t1_t2.Select(x => x.VerySatisfiedCount).FirstOrDefault(), //非常满意数
|
|
|
+ SatisfiedCount = t1.SatisfiedCount + t1_t2.Select(x => x.SatisfiedCount).FirstOrDefault(), //满意数
|
|
|
+ RegardedAsSatisfiedCount = t1.RegardedAsSatisfiedCount + t1_t2.Select(x => x.RegardedAsSatisfiedCount).FirstOrDefault(), //视为满意
|
|
|
+ DefaultSatisfiedCount = t1.DefaultSatisfiedCount + t1_t2.Select(x => x.DefaultSatisfiedCount).FirstOrDefault(), //默认满意
|
|
|
+ NoSatisfiedCount = t1.NoSatisfiedCount + t1_t2.Select(x => x.NoSatisfiedCount).FirstOrDefault(), //不满意
|
|
|
+ NoEvaluateCount = t1.NoEvaluateCount + t1_t2.Select(x => x.NoEvaluateCount).FirstOrDefault(), //未做评价
|
|
|
+ NoPutThroughCount = t1.NoPutThroughCount + t1_t2.Select(x => x.NoPutThroughCount).FirstOrDefault(), //未接通
|
|
|
+ }).ToList();
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
@@ -2267,20 +2269,20 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
.Where((x, so) => x.Time >= dto.StartTime.Value && x.Time <= dto.EndTime.Value);
|
|
|
|
|
|
oldData = await query.GroupBy((x, so) => new
|
|
|
- {
|
|
|
- VisitOrgCode = so.Id
|
|
|
- }).Select((x, so) => new VisitAndOrgSatisfactionStatisticsDto()
|
|
|
- {
|
|
|
- OrgCode = so.Id, //.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>(orgLevelStr)),
|
|
|
- TotalSumCount = SqlFunc.AggregateSum(x.Total),
|
|
|
- VerySatisfiedCount = SqlFunc.AggregateSum(x.VerySatisfaction), //非常满意数
|
|
|
- SatisfiedCount = SqlFunc.AggregateSum(x.Satisfaction), //满意数
|
|
|
- RegardedAsSatisfiedCount = SqlFunc.AggregateSum(x.TreatSatisfaction), //视为满意
|
|
|
- DefaultSatisfiedCount = SqlFunc.AggregateSum(x.DefaultSatisfaction), //默认满意
|
|
|
- NoSatisfiedCount = SqlFunc.AggregateSum(x.Dissatisfaction), //不满意
|
|
|
- NoEvaluateCount = SqlFunc.AggregateSum(x.NotEvaluated), //未做评价
|
|
|
- NoPutThroughCount = SqlFunc.AggregateSum(x.BlockCall), //未接通
|
|
|
- })
|
|
|
+ {
|
|
|
+ VisitOrgCode = so.Id
|
|
|
+ }).Select((x, so) => new VisitAndOrgSatisfactionStatisticsDto()
|
|
|
+ {
|
|
|
+ OrgCode = so.Id, //.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>(orgLevelStr)),
|
|
|
+ TotalSumCount = SqlFunc.AggregateSum(x.Total),
|
|
|
+ VerySatisfiedCount = SqlFunc.AggregateSum(x.VerySatisfaction), //非常满意数
|
|
|
+ SatisfiedCount = SqlFunc.AggregateSum(x.Satisfaction), //满意数
|
|
|
+ RegardedAsSatisfiedCount = SqlFunc.AggregateSum(x.TreatSatisfaction), //视为满意
|
|
|
+ DefaultSatisfiedCount = SqlFunc.AggregateSum(x.DefaultSatisfaction), //默认满意
|
|
|
+ NoSatisfiedCount = SqlFunc.AggregateSum(x.Dissatisfaction), //不满意
|
|
|
+ NoEvaluateCount = SqlFunc.AggregateSum(x.NotEvaluated), //未做评价
|
|
|
+ NoPutThroughCount = SqlFunc.AggregateSum(x.BlockCall), //未接通
|
|
|
+ })
|
|
|
.MergeTable().LeftJoin<SystemOrganize>((it, o) => it.OrgCode == o.Id && (o.Level == org.Level || o.Level == (org.Level + 1)))
|
|
|
.Select((it, o) => new VisitAndOrgSatisfactionStatisticsDto()
|
|
|
{
|
|
@@ -2298,22 +2300,22 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
})
|
|
|
.ToListAsync();
|
|
|
mainList = (from t1 in mainList
|
|
|
- join t2 in oldData on t1.OrgCode equals t2.OrgCode into t1_t2
|
|
|
- from item in t1_t2.DefaultIfEmpty()
|
|
|
- select new VisitAndOrgSatisfactionStatisticsDto()
|
|
|
- {
|
|
|
- OrgName = t1.OrgName,
|
|
|
- OrgCode = t1.OrgCode,
|
|
|
- OrgType = t1.OrgType,
|
|
|
- TotalSumCount = t1.TotalSumCount + t1_t2.Select(x => x.TotalSumCount).FirstOrDefault(),
|
|
|
- VerySatisfiedCount = t1.VerySatisfiedCount + t1_t2.Select(x => x.VerySatisfiedCount).FirstOrDefault(), //非常满意数
|
|
|
- SatisfiedCount = t1.SatisfiedCount + t1_t2.Select(x => x.SatisfiedCount).FirstOrDefault(), //满意数
|
|
|
- RegardedAsSatisfiedCount = t1.RegardedAsSatisfiedCount + t1_t2.Select(x => x.RegardedAsSatisfiedCount).FirstOrDefault(), //视为满意
|
|
|
- DefaultSatisfiedCount = t1.DefaultSatisfiedCount + t1_t2.Select(x => x.DefaultSatisfiedCount).FirstOrDefault(), //默认满意
|
|
|
- NoSatisfiedCount = t1.NoSatisfiedCount + t1_t2.Select(x => x.NoSatisfiedCount).FirstOrDefault(), //不满意
|
|
|
- NoEvaluateCount = t1.NoEvaluateCount + t1_t2.Select(x => x.NoEvaluateCount).FirstOrDefault(), //未做评价
|
|
|
- NoPutThroughCount = t1.NoPutThroughCount + t1_t2.Select(x => x.NoPutThroughCount).FirstOrDefault(), //未接通
|
|
|
- }).ToList();
|
|
|
+ join t2 in oldData on t1.OrgCode equals t2.OrgCode into t1_t2
|
|
|
+ from item in t1_t2.DefaultIfEmpty()
|
|
|
+ select new VisitAndOrgSatisfactionStatisticsDto()
|
|
|
+ {
|
|
|
+ OrgName = t1.OrgName,
|
|
|
+ OrgCode = t1.OrgCode,
|
|
|
+ OrgType = t1.OrgType,
|
|
|
+ TotalSumCount = t1.TotalSumCount + t1_t2.Select(x => x.TotalSumCount).FirstOrDefault(),
|
|
|
+ VerySatisfiedCount = t1.VerySatisfiedCount + t1_t2.Select(x => x.VerySatisfiedCount).FirstOrDefault(), //非常满意数
|
|
|
+ SatisfiedCount = t1.SatisfiedCount + t1_t2.Select(x => x.SatisfiedCount).FirstOrDefault(), //满意数
|
|
|
+ RegardedAsSatisfiedCount = t1.RegardedAsSatisfiedCount + t1_t2.Select(x => x.RegardedAsSatisfiedCount).FirstOrDefault(), //视为满意
|
|
|
+ DefaultSatisfiedCount = t1.DefaultSatisfiedCount + t1_t2.Select(x => x.DefaultSatisfiedCount).FirstOrDefault(), //默认满意
|
|
|
+ NoSatisfiedCount = t1.NoSatisfiedCount + t1_t2.Select(x => x.NoSatisfiedCount).FirstOrDefault(), //不满意
|
|
|
+ NoEvaluateCount = t1.NoEvaluateCount + t1_t2.Select(x => x.NoEvaluateCount).FirstOrDefault(), //未做评价
|
|
|
+ NoPutThroughCount = t1.NoPutThroughCount + t1_t2.Select(x => x.NoPutThroughCount).FirstOrDefault(), //未接通
|
|
|
+ }).ToList();
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
@@ -2639,10 +2641,10 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
if (IsCenter && list != null)
|
|
|
{
|
|
|
data = await list.GroupBy((x, h) => new
|
|
|
- {
|
|
|
- HotspotName = h.HotSpotName,
|
|
|
- HotspotId = h.Id
|
|
|
- })
|
|
|
+ {
|
|
|
+ HotspotName = h.HotSpotName,
|
|
|
+ HotspotId = h.Id
|
|
|
+ })
|
|
|
.Select((x, h) => new VisitAndHotspotSatisfactionStatisticsDto()
|
|
|
{
|
|
|
HotspotName = h.HotSpotName,
|
|
@@ -2677,10 +2679,10 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
else
|
|
|
{
|
|
|
data = await list.GroupBy((x, h) => new
|
|
|
- {
|
|
|
- HotspotName = h.HotSpotName,
|
|
|
- HotspotId = h.Id
|
|
|
- })
|
|
|
+ {
|
|
|
+ HotspotName = h.HotSpotName,
|
|
|
+ HotspotId = h.Id
|
|
|
+ })
|
|
|
.Select((x, h) => new VisitAndHotspotSatisfactionStatisticsDto()
|
|
|
{
|
|
|
HotspotName = h.HotSpotName,
|
|
@@ -2742,21 +2744,21 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
.ToListAsync();
|
|
|
|
|
|
data = (from t1 in data
|
|
|
- join t2 in oldList on t1.HotspotId equals t2.HotspotId into t1_t2
|
|
|
- from item in t1_t2.DefaultIfEmpty()
|
|
|
- select new VisitAndHotspotSatisfactionStatisticsDto()
|
|
|
- {
|
|
|
- HotspotName = t1.HotspotName,
|
|
|
- HotspotId = t1.HotspotId,
|
|
|
- TotalSumCount = t1.TotalSumCount + t1_t2.Select(x => x.TotalSumCount).FirstOrDefault(),
|
|
|
- VerySatisfiedCount = t1.VerySatisfiedCount + t1_t2.Select(x => x.VerySatisfiedCount).FirstOrDefault(), //非常满意数
|
|
|
- SatisfiedCount = t1.SatisfiedCount + t1_t2.Select(x => x.SatisfiedCount).FirstOrDefault(), //满意数
|
|
|
- RegardedAsSatisfiedCount = t1.RegardedAsSatisfiedCount + t1_t2.Select(x => x.RegardedAsSatisfiedCount).FirstOrDefault(), //视为满意
|
|
|
- DefaultSatisfiedCount = t1.DefaultSatisfiedCount + t1_t2.Select(x => x.DefaultSatisfiedCount).FirstOrDefault(), //默认满意
|
|
|
- NoSatisfiedCount = t1.NoSatisfiedCount + t1_t2.Select(x => x.NoSatisfiedCount).FirstOrDefault(), //不满意
|
|
|
- NoEvaluateCount = t1.NoEvaluateCount + t1_t2.Select(x => x.NoEvaluateCount).FirstOrDefault(), //未做评价
|
|
|
- NoPutThroughCount = t1.NoPutThroughCount + t1_t2.Select(x => x.NoPutThroughCount).FirstOrDefault(), //未接通
|
|
|
- }).ToList();
|
|
|
+ join t2 in oldList on t1.HotspotId equals t2.HotspotId into t1_t2
|
|
|
+ from item in t1_t2.DefaultIfEmpty()
|
|
|
+ select new VisitAndHotspotSatisfactionStatisticsDto()
|
|
|
+ {
|
|
|
+ HotspotName = t1.HotspotName,
|
|
|
+ HotspotId = t1.HotspotId,
|
|
|
+ TotalSumCount = t1.TotalSumCount + t1_t2.Select(x => x.TotalSumCount).FirstOrDefault(),
|
|
|
+ VerySatisfiedCount = t1.VerySatisfiedCount + t1_t2.Select(x => x.VerySatisfiedCount).FirstOrDefault(), //非常满意数
|
|
|
+ SatisfiedCount = t1.SatisfiedCount + t1_t2.Select(x => x.SatisfiedCount).FirstOrDefault(), //满意数
|
|
|
+ RegardedAsSatisfiedCount = t1.RegardedAsSatisfiedCount + t1_t2.Select(x => x.RegardedAsSatisfiedCount).FirstOrDefault(), //视为满意
|
|
|
+ DefaultSatisfiedCount = t1.DefaultSatisfiedCount + t1_t2.Select(x => x.DefaultSatisfiedCount).FirstOrDefault(), //默认满意
|
|
|
+ NoSatisfiedCount = t1.NoSatisfiedCount + t1_t2.Select(x => x.NoSatisfiedCount).FirstOrDefault(), //不满意
|
|
|
+ NoEvaluateCount = t1.NoEvaluateCount + t1_t2.Select(x => x.NoEvaluateCount).FirstOrDefault(), //未做评价
|
|
|
+ NoPutThroughCount = t1.NoPutThroughCount + t1_t2.Select(x => x.NoPutThroughCount).FirstOrDefault(), //未接通
|
|
|
+ }).ToList();
|
|
|
}
|
|
|
|
|
|
return data;
|
|
@@ -3201,7 +3203,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
.Includes(x => x.OrderScreens)
|
|
|
.Where(x => x.OrderScreens.Any(s => s.Status == EScreenStatus.SendBack && s.ScreenType == dto.ScreenType && s.SendBackApply == true) ||
|
|
|
x.OrderScreens.Any() == false
|
|
|
- //|| x.OrderScreens.Any(s => (s.Status != EScreenStatus.SendBack && s.SendBackApply != true)) == false
|
|
|
+ //|| x.OrderScreens.Any(s => (s.Status != EScreenStatus.SendBack && s.SendBackApply != true)) == false
|
|
|
)
|
|
|
.Where(x => x.OrderVisit.Order.ReceiveProvinceNo.StartsWith("ZGZFW") == false ||
|
|
|
string.IsNullOrEmpty(x.OrderVisit.Order.ReceiveProvinceNo))
|
|
@@ -3434,11 +3436,13 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
.WhereIF(dto.IdentityType != null, d => d.Order.IdentityType == dto.IdentityType) //来电主体
|
|
|
.WhereIF(dto.CreationTimeStart.HasValue, d => d.Order.CreationTime >= dto.CreationTimeStart)
|
|
|
.WhereIF(dto.CreationTimeEnd.HasValue, d => d.Order.CreationTime <= dto.CreationTimeEnd)
|
|
|
- .WhereIF(dto.AiVisitResult.HasValue && dto.AiVisitResult == EAiVisitResult.OrgProcessingResultsNoSatisfied, d => d.VisitState == EVisitState.WaitForVisit && d.VisitType == EVisitType.ChipVoiceVisit && d.OrderVisitDetails.Any(m => SqlFunc.JsonField(m.OrgProcessingResults, "Key") == "2"))
|
|
|
+ .WhereIF(dto.AiVisitResult.HasValue && dto.AiVisitResult == EAiVisitResult.OrgProcessingResultsNoSatisfied,
|
|
|
+ d => d.VisitState == EVisitState.WaitForVisit && d.VisitType == EVisitType.ChipVoiceVisit &&
|
|
|
+ d.OrderVisitDetails.Any(m => SqlFunc.JsonField(m.OrgProcessingResults, "Key") == "2"))
|
|
|
//.WhereIF(dto.IsAiVisit.HasValue && dto.IsAiVisit == false, x => x.AiVisitCount > 0) //是否建立智能回访任务 取反(建立过)
|
|
|
- .WhereIF(dto.IsAiVisit.HasValue && dto.IsAiVisit == true, x => x.AiVisitCount <= 0) //(未建立过)
|
|
|
+ .WhereIF(dto.IsAiVisit.HasValue && dto.IsAiVisit == true, x => x.AiVisitCount <= 0) //(未建立过)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Channel), d => d.Order.SourceChannelCode == dto.Channel)
|
|
|
- .OrderByIF(dto.VisitStateQuery!= EVisitStateQuery.Visited,x=> x.Order.IsUrgent, OrderByType.Desc)
|
|
|
+ .OrderByIF(dto.VisitStateQuery != EVisitStateQuery.Visited, x => x.Order.IsUrgent, OrderByType.Desc)
|
|
|
.OrderByDescending(d => d.PublishTime);
|
|
|
return query;
|
|
|
}
|
|
@@ -3768,7 +3772,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
/// <summary>
|
|
|
/// 查询特提操作目标节点的指派对象
|
|
|
/// </summary>
|
|
|
- public async Task<StepAssignInfo?> GetOrderRecallAssignInfoAsync(Workflow workflow, StepDefine targetStepDefine, WorkflowStep currentStep,
|
|
|
+ public async Task<StepAssignInfo?> GetOrderRecallAssignInfoAsync(
|
|
|
+ Workflow workflow, StepDefine targetStepDefine, WorkflowStep targetStep,
|
|
|
BasicWorkflowDto dto, CancellationToken cancellationToken)
|
|
|
{
|
|
|
//自贡需求:
|
|
@@ -3819,21 +3824,34 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
rsp = new StepAssignInfo
|
|
|
{
|
|
|
FlowAssignType = EFlowAssignType.Org,
|
|
|
- OrgId = currentStep.HandlerOrgId,
|
|
|
- OrgName = currentStep.HandlerOrgName,
|
|
|
- Key = currentStep.HandlerOrgId,
|
|
|
- Value = currentStep.HandlerOrgName,
|
|
|
+ OrgId = targetStep.HandlerOrgId,
|
|
|
+ OrgName = targetStep.HandlerOrgName,
|
|
|
+ Key = targetStep.HandlerOrgId,
|
|
|
+ Value = targetStep.HandlerOrgName,
|
|
|
};
|
|
|
break;
|
|
|
case EBusinessType.DepartmentLeader:
|
|
|
- rsp = new StepAssignInfo
|
|
|
+ if (targetStep.FlowAssignType is EFlowAssignType.OrgAndRole &&
|
|
|
+ !string.IsNullOrEmpty(targetStep.HandlerOrgId) &&
|
|
|
+ !string.IsNullOrEmpty(targetStep.RoleId))
|
|
|
{
|
|
|
- FlowAssignType = EFlowAssignType.OrgAndRole,
|
|
|
- OrgId = currentStep.HandlerOrgId,
|
|
|
- OrgName = currentStep.HandlerOrgName,
|
|
|
- Key = currentStep.HandlerOrgId,
|
|
|
- Value = currentStep.HandlerOrgName,
|
|
|
- };
|
|
|
+ rsp = targetStep.GetWorkflowStepHandler();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var define = targetStepDefine.HandlerTypeItems.First();
|
|
|
+ rsp = new StepAssignInfo
|
|
|
+ {
|
|
|
+ FlowAssignType = EFlowAssignType.OrgAndRole,
|
|
|
+ OrgId = targetStep.HandlerOrgId,
|
|
|
+ OrgName = targetStep.HandlerOrgName,
|
|
|
+ RoleId = define.Key,
|
|
|
+ RoleName = define.Value,
|
|
|
+ Key = targetStep.HandlerOrgId,
|
|
|
+ Value = targetStep.HandlerOrgName,
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
break;
|
|
|
case EBusinessType.File:
|
|
|
case EBusinessType.Unknown:
|
|
@@ -3871,21 +3889,33 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
rsp = new StepAssignInfo
|
|
|
{
|
|
|
FlowAssignType = EFlowAssignType.Org,
|
|
|
- OrgId = currentStep.HandlerOrgId,
|
|
|
- OrgName = currentStep.HandlerOrgName,
|
|
|
- Key = currentStep.HandlerOrgId,
|
|
|
- Value = currentStep.HandlerOrgName,
|
|
|
+ OrgId = targetStep.HandlerOrgId,
|
|
|
+ OrgName = targetStep.HandlerOrgName,
|
|
|
+ Key = targetStep.HandlerOrgId,
|
|
|
+ Value = targetStep.HandlerOrgName,
|
|
|
};
|
|
|
break;
|
|
|
case EBusinessType.DepartmentLeader:
|
|
|
- rsp = new StepAssignInfo
|
|
|
+ if (targetStep.FlowAssignType is EFlowAssignType.OrgAndRole &&
|
|
|
+ !string.IsNullOrEmpty(targetStep.HandlerOrgId) &&
|
|
|
+ !string.IsNullOrEmpty(targetStep.RoleId))
|
|
|
{
|
|
|
- FlowAssignType = EFlowAssignType.OrgAndRole,
|
|
|
- OrgId = currentStep.HandlerOrgId,
|
|
|
- OrgName = currentStep.HandlerOrgName,
|
|
|
- Key = currentStep.HandlerOrgId,
|
|
|
- Value = currentStep.HandlerOrgName,
|
|
|
- };
|
|
|
+ rsp = targetStep.GetWorkflowStepHandler();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ define = targetStepDefine.HandlerTypeItems.First();
|
|
|
+ rsp = new StepAssignInfo
|
|
|
+ {
|
|
|
+ FlowAssignType = EFlowAssignType.OrgAndRole,
|
|
|
+ OrgId = targetStep.HandlerOrgId,
|
|
|
+ OrgName = targetStep.HandlerOrgName,
|
|
|
+ RoleId = define.Key,
|
|
|
+ RoleName = define.Value,
|
|
|
+ Key = targetStep.HandlerOrgId,
|
|
|
+ Value = targetStep.HandlerOrgName,
|
|
|
+ };
|
|
|
+ }
|
|
|
break;
|
|
|
case EBusinessType.File:
|
|
|
case EBusinessType.Unknown:
|
|
@@ -3907,31 +3937,43 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
rsp = new StepAssignInfo
|
|
|
{
|
|
|
FlowAssignType = EFlowAssignType.User,
|
|
|
- UserId = currentStep.HandlerId,
|
|
|
- Username = currentStep.HandlerName,
|
|
|
- Key = currentStep.HandlerId,
|
|
|
- Value = currentStep.HandlerName,
|
|
|
+ UserId = targetStep.HandlerId,
|
|
|
+ Username = targetStep.HandlerName,
|
|
|
+ Key = targetStep.HandlerId,
|
|
|
+ Value = targetStep.HandlerName,
|
|
|
};
|
|
|
break;
|
|
|
case EBusinessType.Department:
|
|
|
rsp = new StepAssignInfo
|
|
|
{
|
|
|
FlowAssignType = EFlowAssignType.Org,
|
|
|
- OrgId = currentStep.HandlerOrgId,
|
|
|
- OrgName = currentStep.HandlerOrgName,
|
|
|
- Key = currentStep.HandlerOrgId,
|
|
|
- Value = currentStep.HandlerOrgName,
|
|
|
+ OrgId = targetStep.HandlerOrgId,
|
|
|
+ OrgName = targetStep.HandlerOrgName,
|
|
|
+ Key = targetStep.HandlerOrgId,
|
|
|
+ Value = targetStep.HandlerOrgName,
|
|
|
};
|
|
|
break;
|
|
|
case EBusinessType.DepartmentLeader:
|
|
|
- rsp = new StepAssignInfo
|
|
|
+ if (targetStep.FlowAssignType is EFlowAssignType.OrgAndRole &&
|
|
|
+ !string.IsNullOrEmpty(targetStep.HandlerOrgId) &&
|
|
|
+ !string.IsNullOrEmpty(targetStep.RoleId))
|
|
|
{
|
|
|
- FlowAssignType = EFlowAssignType.OrgAndRole,
|
|
|
- OrgId = currentStep.HandlerOrgId,
|
|
|
- OrgName = currentStep.HandlerOrgName,
|
|
|
- Key = currentStep.HandlerOrgId,
|
|
|
- Value = currentStep.HandlerOrgName,
|
|
|
- };
|
|
|
+ rsp = targetStep.GetWorkflowStepHandler();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var define = targetStepDefine.HandlerTypeItems.First();
|
|
|
+ rsp = new StepAssignInfo
|
|
|
+ {
|
|
|
+ FlowAssignType = EFlowAssignType.OrgAndRole,
|
|
|
+ OrgId = targetStep.HandlerOrgId,
|
|
|
+ OrgName = targetStep.HandlerOrgName,
|
|
|
+ RoleId = define.Key,
|
|
|
+ RoleName = define.Value,
|
|
|
+ Key = targetStep.HandlerOrgId,
|
|
|
+ Value = targetStep.HandlerOrgName,
|
|
|
+ };
|
|
|
+ }
|
|
|
break;
|
|
|
case EBusinessType.File:
|
|
|
case EBusinessType.Unknown:
|
|
@@ -4253,20 +4295,20 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
}).ToListAsync();
|
|
|
|
|
|
var res = (from t1 in items
|
|
|
- join t2 in items2 on t1.UserId equals t2.UserId into t1_t2
|
|
|
- from item in t1_t2.DefaultIfEmpty()
|
|
|
- select new SendOrderReportOutDto
|
|
|
- {
|
|
|
- UserId = t1.UserId,
|
|
|
- UserName = t1.UserName,
|
|
|
- SendOrderNum = t1.SendOrderNum,
|
|
|
- NoSendOrderNum = t1.NoSendOrderNum,
|
|
|
- ReSendOrderNum = t1_t2.Select(x => x.ReSendOrderNum).FirstOrDefault(),
|
|
|
- ChainRate = t1_t2.Select(x => x.ReSendOrderNum).FirstOrDefault() > 0
|
|
|
- ? ((double.Parse(t1.SendOrderNum.ToString()) - double.Parse(t1_t2.Select(x => x.ReSendOrderNum).FirstOrDefault().ToString())) /
|
|
|
- double.Parse(t1.SendOrderNum.ToString()) * 100).ToString("F2") + "%"
|
|
|
- : "100.00%",
|
|
|
- }).ToList();
|
|
|
+ join t2 in items2 on t1.UserId equals t2.UserId into t1_t2
|
|
|
+ from item in t1_t2.DefaultIfEmpty()
|
|
|
+ select new SendOrderReportOutDto
|
|
|
+ {
|
|
|
+ UserId = t1.UserId,
|
|
|
+ UserName = t1.UserName,
|
|
|
+ SendOrderNum = t1.SendOrderNum,
|
|
|
+ NoSendOrderNum = t1.NoSendOrderNum,
|
|
|
+ ReSendOrderNum = t1_t2.Select(x => x.ReSendOrderNum).FirstOrDefault(),
|
|
|
+ ChainRate = t1_t2.Select(x => x.ReSendOrderNum).FirstOrDefault() > 0
|
|
|
+ ? ((double.Parse(t1.SendOrderNum.ToString()) - double.Parse(t1_t2.Select(x => x.ReSendOrderNum).FirstOrDefault().ToString())) /
|
|
|
+ double.Parse(t1.SendOrderNum.ToString()) * 100).ToString("F2") + "%"
|
|
|
+ : "100.00%",
|
|
|
+ }).ToList();
|
|
|
return res;
|
|
|
}
|
|
|
|
|
@@ -4419,7 +4461,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
)
|
|
|
.Where(d => d.Status <= EOrderStatus.HandOverToUnAccept
|
|
|
|| d.Status == EOrderStatus.Handling //指派给班长再指派回坐席时
|
|
|
- //|| d.Status == EOrderStatus.Countersigning//跨级派单业务如发起会签再回到坐席会签汇总时
|
|
|
+ //|| d.Status == EOrderStatus.Countersigning//跨级派单业务如发起会签再回到坐席会签汇总时
|
|
|
)
|
|
|
;
|
|
|
|
|
@@ -4608,7 +4650,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
.WhereIF(dto.IsUrgent.HasValue, d => d.IsUrgent == dto.IsUrgent!.Value)
|
|
|
.WhereIF(dto.Status.HasValue, d => d.Status == dto.Status) //工单状态
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.CurrentStepCode), d => d.CurrentStepCode == dto.CurrentStepCode) //当前办理节点
|
|
|
- //.OrderByDescending(d => d.IsUrgent)
|
|
|
+ //.OrderByDescending(d => d.IsUrgent)
|
|
|
.OrderByIF(string.IsNullOrEmpty(dto.SortField), d => d.IsUrgent, OrderByType.Desc)
|
|
|
.OrderByIF(string.IsNullOrEmpty(dto.SortField), d => d.StartTime, OrderByType.Desc)
|
|
|
.OrderByIF(dto is { SortField: "creationTime", SortRule: 0 }, d => d.CreationTime, OrderByType.Asc) //创建时间升序
|