|
@@ -1,6 +1,4 @@
|
|
|
-using System.Data;
|
|
|
-using System.Dynamic;
|
|
|
-using DotNetCore.CAP;
|
|
|
+using DotNetCore.CAP;
|
|
|
using FluentValidation;
|
|
|
using Hotline.Application.FlowEngine;
|
|
|
using Hotline.Application.Quality;
|
|
@@ -48,11 +46,11 @@ using Hotline.Validators.FlowEngine;
|
|
|
using Mapster;
|
|
|
using MapsterMapper;
|
|
|
using MediatR;
|
|
|
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion.Internal;
|
|
|
using Microsoft.Extensions.Options;
|
|
|
using PanGu;
|
|
|
-using Quartz.Simpl;
|
|
|
using SqlSugar;
|
|
|
+using System.Data;
|
|
|
+using System.Dynamic;
|
|
|
using XF.Domain.Authentications;
|
|
|
using XF.Domain.Dependency;
|
|
|
using XF.Domain.Exceptions;
|
|
@@ -848,6 +846,86 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
.OrderByIF(dto is { SortRule: 1, SortField: "expiredTimeProvince" }, d => d.ExpiredTimeProvince, OrderByType.Desc);
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 获取临时待发布列表
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public ISugarQueryable<Order> GetPublishTempOrderList(QueryOrderPublishDto dto)
|
|
|
+ {
|
|
|
+ var query = _orderRepository.Queryable().Includes(d => d.OrderTags);
|
|
|
+ if (_appOptions.Value.IsLuZhou)
|
|
|
+ query = query.Includes(d => d.FwCallRecord);
|
|
|
+ query = query.RightJoin<OrderPublishTemp>((d, p) => d.No == p.No);
|
|
|
+
|
|
|
+ return query.Where(d => d.Status == EOrderStatus.Filed)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.StartsWith(dto.Keyword!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No.Contains(dto.No))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Title), d => d.Title.Contains(dto.Title))
|
|
|
+ //.WhereIF(dto.PubState == EPubState.Pub, d => d.Status >= EOrderStatus.Published)
|
|
|
+ //.WhereIF(dto.PubState == EPubState.NoPub, d => d.Status == EOrderStatus.Filed)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Channel), d => d.SourceChannelCode == dto.Channel)
|
|
|
+ //.WhereIF(!string.IsNullOrEmpty(dto.OrderTag), d => d.OrderTagCode == dto.OrderTag!) //工单标签
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.OrderTag), d => d.OrderTags.Any(ot => ot.DicDataValue == dto.OrderTag)) //工单标签
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.CenterToOrgHandlerName), d => d.CenterToOrgHandlerName.Contains(dto.CenterToOrgHandlerName)) //派单人
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.NameOrNo),
|
|
|
+ d => d.AcceptorName.Contains(dto.NameOrNo) || d.AcceptorStaffNo.Contains(dto.NameOrNo)) //受理人/坐席
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName), d => d.ActualHandleOrgName.Contains(dto.ActualHandleOrgName)) //接办部门(综合查询模糊)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.AcceptTypeCode == dto.AcceptType) //受理类型
|
|
|
+ .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.Contact), d => d.Contact == dto.Contact) //联系电话
|
|
|
+ //.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.IsProvince == true)
|
|
|
+ .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == false, d => d.IsProvince == false)
|
|
|
+ //.WhereIF(dto.FiledType != null && dto.FiledType == FiledType.CenterFiled, d => d.ProcessType == EProcessType.Zhiban)
|
|
|
+ //.WhereIF(dto.FiledType != null && dto.FiledType == FiledType.OrgFiled, d => d.ProcessType == EProcessType.Jiaoban)
|
|
|
+ .WhereIF(dto.FiledType != null && dto.FiledType == FiledType.CenterFiled, d => d.FileOrgIsCenter == true)
|
|
|
+ .WhereIF(dto.FiledType != null && dto.FiledType == FiledType.OrgFiled, d => d.FileOrgIsCenter == false)
|
|
|
+ .WhereIF(dto.IsCountersign != null && dto.IsCountersign == true, d => d.CounterSignType != null)
|
|
|
+ .WhereIF(dto.IsCountersign != null && dto.IsCountersign == false, d => d.CounterSignType == null)
|
|
|
+ .WhereIF(dto.AcceptTypes.Any(), d => dto.AcceptTypes.Contains(d.AcceptType))
|
|
|
+ .WhereIF(dto.HotspotIds.Any(), d => dto.HotspotIds.Contains(d.HotspotId))
|
|
|
+ //.WhereIF(dto.Resolve.HasValue, d => d.OrderPublish.Resolve == dto.Resolve)
|
|
|
+ .WhereIF(dto.CreationTimeStart.HasValue, d => d.CreationTime >= dto.CreationTimeStart)
|
|
|
+ .WhereIF(dto.CreationTimeEnd.HasValue, d => d.CreationTime <= dto.CreationTimeEnd)
|
|
|
+ .WhereIF(dto.FiledTimeStart.HasValue, d => d.FiledTime >= dto.FiledTimeStart)
|
|
|
+ .WhereIF(dto.FiledTimeEnd.HasValue, d => d.FiledTime <= dto.FiledTimeEnd)
|
|
|
+ .WhereIF(dto.ExpiredTimeProvinceStart.HasValue, d => d.ExpiredTimeProvince >= dto.ExpiredTimeProvinceStart) //省期满时间开始
|
|
|
+ .WhereIF(dto.ExpiredTimeProvinceEnd.HasValue, d => d.ExpiredTimeProvince <= dto.ExpiredTimeProvinceEnd) //省期满时间结束
|
|
|
+ .WhereIF(dto.Iszgzfw.HasValue && dto.Iszgzfw == true, d => d.ReceiveProvinceNo.StartsWith("ZGZFW"))
|
|
|
+ .WhereIF(dto.Isgjzwfwpt.HasValue && dto.Isgjzwfwpt == true, d => d.ReceiveProvinceNo.StartsWith("GJZWFWPT"))
|
|
|
+ .WhereIF(dto.QuerySelf.HasValue && dto.QuerySelf.Value, d => d.WaitForPublisherId == _sessionContext.RequiredUserId)
|
|
|
+ .WhereIF(dto.IdentityType != null, d => d.IdentityType == dto.IdentityType) //来电主体
|
|
|
+ .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(!string.IsNullOrEmpty(dto.ProvinceChannel) && dto.ProvinceChannel == "1", d => d.Source == ESource.ProvinceStraight &&
|
|
|
+ d.SourceChannelCode == "SZMHD" && d.IsProvince == false) //政民互动直派
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.ProvinceChannel) && dto.ProvinceChannel == "2", d => d.Source == ESource.ProvinceStraight &&
|
|
|
+ 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
|
|
|
+ .OrderBy(d => new { IsUrgent = d.IsUrgent }, OrderByType.Desc)
|
|
|
+ .OrderByIF(string.IsNullOrEmpty(dto.SortField), d => d.IsUrgent, OrderByType.Desc)
|
|
|
+ .OrderByIF(string.IsNullOrEmpty(dto.SortField), d => d.FiledTime, OrderByType.Desc)
|
|
|
+ .OrderByIF(dto is { SortRule: 0, SortField: "filedTime" }, d => d.FiledTime, OrderByType.Asc)
|
|
|
+ .OrderByIF(dto is { SortRule: 1, SortField: "filedTime" }, d => d.FiledTime, OrderByType.Desc)
|
|
|
+ .OrderByIF(dto is { SortRule: 0, SortField: "actualHandleTime" }, d => d.ActualHandleTime, OrderByType.Asc)
|
|
|
+ .OrderByIF(dto is { SortRule: 1, SortField: "actualHandleTime" }, d => d.ActualHandleTime, OrderByType.Desc)
|
|
|
+ .OrderByIF(dto is { SortRule: 0, SortField: "creationTime" }, d => d.CreationTime, OrderByType.Asc)
|
|
|
+ .OrderByIF(dto is { SortRule: 1, SortField: "creationTime" }, d => d.CreationTime, OrderByType.Desc)
|
|
|
+ .OrderByIF(dto is { SortRule: 0, SortField: "expiredTimeProvince" }, d => d.ExpiredTimeProvince, OrderByType.Asc)
|
|
|
+ .OrderByIF(dto is { SortRule: 1, SortField: "expiredTimeProvince" }, d => d.ExpiredTimeProvince, OrderByType.Desc);
|
|
|
+ }
|
|
|
+
|
|
|
public ISugarQueryable<OrderPublish> GetPublishedOrder(PublishedPagedRequest dto)
|
|
|
{
|
|
|
return _orderPublishRepository.Queryable()
|
|
@@ -882,7 +960,15 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
d.Order.SourceChannelCode == "SZMHD" && d.Order.IsProvince == true) //政民互动
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.ProvinceChannel) && dto.ProvinceChannel == "3", d => d.Order.Source == ESource.ProvinceStraight &&
|
|
|
d.Order.SourceChannelCode == "S12345" && d.Order.IsProvince == true) //省12345
|
|
|
- .OrderByDescending(d => d.CreationTime);
|
|
|
+ .OrderByIF(string.IsNullOrEmpty(dto.SortField), d => d.CreationTime, OrderByType.Desc)
|
|
|
+ .OrderByIF(dto is { SortRule: 0, SortField: "creationTime" }, d => d.Order.CreationTime, OrderByType.Asc) //受理时间
|
|
|
+ .OrderByIF(dto is { SortRule: 1, SortField: "creationTime" }, d => d.Order.CreationTime, OrderByType.Desc)
|
|
|
+ .OrderByIF(dto is { SortRule: 0, SortField: "filedTime" }, d => d.Order.FiledTime, OrderByType.Asc) //办结时间
|
|
|
+ .OrderByIF(dto is { SortRule: 1, SortField: "filedTime" }, d => d.Order.FiledTime, OrderByType.Desc)
|
|
|
+ .OrderByIF(dto is { SortRule: 0, SortField: "publishTime" }, d => d.CreationTime, OrderByType.Asc) //发布时间
|
|
|
+ .OrderByIF(dto is { SortRule: 1, SortField: "publishTime" }, d => d.CreationTime, OrderByType.Desc)
|
|
|
+ .OrderByIF(dto is { SortRule: 0, SortField: "lastModificationTime" }, d => d.LastModificationTime, OrderByType.Asc) //更新时间
|
|
|
+ .OrderByIF(dto is { SortRule: 1, SortField: "lastModificationTime" }, d => d.LastModificationTime, OrderByType.Desc);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -1433,6 +1519,10 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
visit.OrderVisitDetails[i].ScreenByEndTime = await _orderDomainService.GetScreenByEndTime();
|
|
|
}
|
|
|
}
|
|
|
+ if (dto.IsTransact.HasValue && dto.IsTransact.Value)
|
|
|
+ {
|
|
|
+ visit.Order.VisitReTransactNum = visit.Order.VisitReTransactNum is null ? 1 : visit.Order.VisitReTransactNum + 1;
|
|
|
+ }
|
|
|
|
|
|
await _orderVisitRepository.UpdateAsync(visit, cancellationToken);
|
|
|
await _orderVisitedDetailRepository.UpdateRangeAsync(visit.OrderVisitDetails, cancellationToken);
|
|
@@ -1456,20 +1546,23 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
{
|
|
|
if (visit.Order.Source != ESource.ProvinceStraight)
|
|
|
{
|
|
|
- //发送查询短信
|
|
|
- var messageDto = new Share.Dtos.Push.MessageDto
|
|
|
+ if (visit.Order.FileOrgIsCenter.Value == false || (visit.Order.FileOrgIsCenter.Value == true && visit.Order.CounterSignType != null))
|
|
|
{
|
|
|
- PushBusiness = EPushBusiness.SearchSms,
|
|
|
- ExternalId = visit.Id,
|
|
|
- OrderId = visit.Order.Id,
|
|
|
- PushPlatform = EPushPlatform.Sms,
|
|
|
- Remark = visit.Order.Title,
|
|
|
- Name = visit.Order.FromName,
|
|
|
- TemplateCode = "1021",
|
|
|
- Params = new List<string>() { visit.Order.No, visit.Order.Password },
|
|
|
- TelNumber = visit.Order.Contact,
|
|
|
- };
|
|
|
- await _mediator.Publish(new PushMessageNotify(messageDto), cancellationToken);
|
|
|
+ //发送查询短信
|
|
|
+ var messageDto = new Share.Dtos.Push.MessageDto
|
|
|
+ {
|
|
|
+ PushBusiness = EPushBusiness.SearchSms,
|
|
|
+ ExternalId = visit.Id,
|
|
|
+ OrderId = visit.Order.Id,
|
|
|
+ PushPlatform = EPushPlatform.Sms,
|
|
|
+ Remark = visit.Order.Title,
|
|
|
+ Name = visit.Order.FromName,
|
|
|
+ TemplateCode = "1021",
|
|
|
+ Params = new List<string>() { visit.Order.No, visit.Order.Password },
|
|
|
+ TelNumber = visit.Order.Contact,
|
|
|
+ };
|
|
|
+ await _mediator.Publish(new PushMessageNotify(messageDto), cancellationToken);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1527,10 +1620,10 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
var visitData = dto.VisitDetails.Where(x => x.VisitTarget == EVisitTarget.Seat).FirstOrDefault();
|
|
|
if (visitData != null)
|
|
|
{
|
|
|
- if ((visitData.VoiceEvaluate == EVoiceEvaluate.VerySatisfied ||
|
|
|
- visitData.VoiceEvaluate == EVoiceEvaluate.Satisfied) &&
|
|
|
- (visitData.SeatEvaluate == ESeatEvaluate.VerySatisfied ||
|
|
|
- visitData.SeatEvaluate == ESeatEvaluate.Satisfied))
|
|
|
+ if (visitData.VoiceEvaluate != EVoiceEvaluate.NoSatisfied &&
|
|
|
+ visitData.VoiceEvaluate != EVoiceEvaluate.VeryNoSatisfied &&
|
|
|
+ visitData.SeatEvaluate != ESeatEvaluate.NoSatisfied &&
|
|
|
+ visitData.SeatEvaluate != ESeatEvaluate.VeryNoSatisfied)
|
|
|
{
|
|
|
await _orderScreenRepository.RemoveAsync(x => x.VisitId == visitData.VisitId);
|
|
|
}
|
|
@@ -1547,8 +1640,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
{
|
|
|
if (visitData.OrgProcessingResults != null)
|
|
|
{
|
|
|
- if (visitData.OrgProcessingResults.Value == "非常满意" ||
|
|
|
- visitData.OrgProcessingResults.Value == "满意")
|
|
|
+ if (visitData.OrgProcessingResults.Value != "非常不满意" &&
|
|
|
+ visitData.OrgProcessingResults.Value != "不满意")
|
|
|
{
|
|
|
await _orderScreenRepository.RemoveAsync(x => x.VisitId == visitData.VisitId);
|
|
|
}
|
|
@@ -1721,6 +1814,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
//}
|
|
|
|
|
|
query = query
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.PoliticalIdentityValue), d => d.PoliticalIdentityValue == dto.PoliticalIdentityValue)//政治身份查询
|
|
|
.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.ReceiveProvinceNo), d => d.ReceiveProvinceNo.Contains(dto.ReceiveProvinceNo)) //省编号
|
|
@@ -1976,6 +2070,139 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
return query;
|
|
|
}
|
|
|
|
|
|
+ public ISugarQueryable<Order> QueryEnterprise(QueryOrderDto dto)
|
|
|
+ {
|
|
|
+ var query = _orderRepository.Queryable(canView: false);
|
|
|
+ query = query.Includes(d => d.OrderScreens).Includes(d => d.OrderTags);
|
|
|
+
|
|
|
+ query = query
|
|
|
+ .Where(d => d.IdentityType == EIdentityType.Enterprise) //来电主体
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.PoliticalIdentityValue), d => d.PoliticalIdentityValue == dto.PoliticalIdentityValue)//政治身份查询
|
|
|
+ .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.ReceiveProvinceNo), d => d.ReceiveProvinceNo.Contains(dto.ReceiveProvinceNo)) //省编号
|
|
|
+ .WhereIF(dto.IsSecret.HasValue, d => d.IsSecret == dto.IsSecret.Value)
|
|
|
+ .WhereIF(dto.IsReTransact.HasValue && dto.IsReTransact.Value, d => d.ReTransactNum > 0)
|
|
|
+ .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(!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(!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!) //受理人/坐席
|
|
|
+ .WhereIF(dto.CreationTimeStart.HasValue, d => d.CreationTime >= dto.CreationTimeStart) //受理时间开始
|
|
|
+ .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(!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), 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.Status.HasValue, d => d.Status == dto.Status) //工单状态
|
|
|
+ //.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)) //无甄别
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.CurrentStepCode), d => d.CurrentStepCode == dto.CurrentStepCode) //当前办理节点
|
|
|
+ .WhereIF(dto.ActualHandleTimeStart.HasValue, d => d.FiledTime >= dto.ActualHandleTimeStart) //办结时间开始
|
|
|
+ .WhereIF(dto.ActualHandleTimeEnd.HasValue, d => d.FiledTime <= dto.ActualHandleTimeEnd) //办结时间结束
|
|
|
+ .WhereIF(dto.IsOverTime == true,
|
|
|
+ d => (d.ExpiredTime < DateTime.Now && d.Status < EOrderStatus.Filed) ||
|
|
|
+ (d.ExpiredTime < d.FiledTime && d.Status >= EOrderStatus.Filed)) //是 超期
|
|
|
+ .WhereIF(dto.IsOverTime == false,
|
|
|
+ d => (d.ExpiredTime > DateTime.Now && d.Status < EOrderStatus.Filed) ||
|
|
|
+ (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(!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))
|
|
|
+ .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == true && dto.ProvinceSearch != true, d => d.IsProvince == true)
|
|
|
+ .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == false && dto.ProvinceSearch != true, d => d.IsProvince == false)
|
|
|
+ .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == true && dto.ProvinceSearch == true, d => d.Source == ESource.ProvinceStraight)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.SensitiveWord), d => SqlFunc.JsonArrayAny(d.Sensitive, dto.SensitiveWord))
|
|
|
+ .WhereIF(dto.IsSensitiveWord.HasValue && dto.IsSensitiveWord == true,
|
|
|
+ d => d.Sensitive != null && SqlFunc.JsonArrayLength(d.Sensitive) > 0)
|
|
|
+ .WhereIF(dto.IsUrgent.HasValue, d => d.IsUrgent == dto.IsUrgent.Value)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.ProvinceChannel) && dto.ProvinceChannel == "1", d => d.Source == ESource.ProvinceStraight &&
|
|
|
+ d.SourceChannelCode == "SZMHD" && d.IsProvince == false) //政民互动直派
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.ProvinceChannel) && dto.ProvinceChannel == "2", d => d.Source == ESource.ProvinceStraight &&
|
|
|
+ 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.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.OrderTags.Any(ot => ot.DicDataValue == dto.OrderTagCode)) //工单标签
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.FocusOnEvents),
|
|
|
+ d => d.FocusOnEvents.Contains(dto.FocusOnEvents)) //!string.IsNullOrEmpty(d.FocusOnEvents) && SqlFunc.SplitIn(d.FocusOnEvents, dto.FocusOnEvents))
|
|
|
+ .OrderByIF(string.IsNullOrEmpty(dto.SortField), d => d.CreationTime, OrderByType.Desc) //默认排序时间为创建时间
|
|
|
+ .OrderByIF(dto is { SortField: "no", SortRule: 0 }, d => d.No, OrderByType.Asc) //工单编号升序
|
|
|
+ .OrderByIF(dto is { SortField: "no", SortRule: 1 }, d => d.No, OrderByType.Desc) //工单编号降序
|
|
|
+ .OrderByIF(dto is { SortField: "isProvinceText", SortRule: 0 }, d => d.IsProvince, OrderByType.Asc) //是否省工单升序
|
|
|
+ .OrderByIF(dto is { SortField: "isProvinceText", SortRule: 1 }, d => d.IsProvince, OrderByType.Desc) //是否省工单降序
|
|
|
+ .OrderByIF(dto is { SortField: "reTransactNum", SortRule: 0 }, d => d.ReTransactNum, OrderByType.Asc) //重办次数升序
|
|
|
+ .OrderByIF(dto is { SortField: "reTransactNum", SortRule: 1 }, d => d.ReTransactNum, OrderByType.Desc) //重办次数降序
|
|
|
+ .OrderByIF(dto is { SortField: "isUrgentText", SortRule: 0 }, d => d.IsUrgent, OrderByType.Asc) //是否紧急升序
|
|
|
+ .OrderByIF(dto is { SortField: "isUrgentText", SortRule: 1 }, d => d.IsUrgent, OrderByType.Desc) //是否紧急降序
|
|
|
+ .OrderByIF(dto is { SortField: "isSecret", SortRule: 0 }, d => d.IsSecret, OrderByType.Asc) //是否紧急升序
|
|
|
+ .OrderByIF(dto is { SortField: "isSecret", SortRule: 1 }, d => d.IsSecret, OrderByType.Desc) //是否紧急降序
|
|
|
+ .OrderByIF(dto is { SortField: "currentStepName", SortRule: 0 }, d => d.CurrentStepName, OrderByType.Asc) //当前节点升序
|
|
|
+ .OrderByIF(dto is { SortField: "currentStepName", SortRule: 1 }, d => d.CurrentStepName, OrderByType.Desc) //当前节点降序
|
|
|
+ .OrderByIF(dto is { SortField: "actualStepAcceptText", SortRule: 0 }, d => d.ActualHandleStepAcceptTime.HasValue,
|
|
|
+ OrderByType.Asc) //受理情况升序
|
|
|
+ .OrderByIF(dto is { SortField: "actualStepAcceptText", SortRule: 1 }, d => d.ActualHandleStepAcceptTime.HasValue,
|
|
|
+ OrderByType.Desc) //受理情况降序
|
|
|
+ .OrderByIF(dto is { SortField: "statusText", SortRule: 0 }, d => d.Status, OrderByType.Asc) //工单状态升序
|
|
|
+ .OrderByIF(dto is { SortField: "statusText", SortRule: 1 }, d => d.Status, OrderByType.Desc) //工单状态降序
|
|
|
+ .OrderByIF(dto is { SortField: "creationTime", SortRule: 0 }, d => d.StartTime, OrderByType.Asc) //受理时间升序
|
|
|
+ .OrderByIF(dto is { SortField: "creationTime", SortRule: 1 }, d => d.StartTime, OrderByType.Desc) //受理时间降序
|
|
|
+ .OrderByIF(dto is { SortField: "expiredTime", SortRule: 0 }, d => d.ExpiredTime, OrderByType.Asc) //超期时间升序
|
|
|
+ .OrderByIF(dto is { SortField: "expiredTime", SortRule: 1 }, d => d.ExpiredTime, OrderByType.Desc) //超期时间降序
|
|
|
+ .OrderByIF(dto is { SortField: "filedTime", SortRule: 0 }, d => d.FiledTime, OrderByType.Asc) //办结时间升序
|
|
|
+ .OrderByIF(dto is { SortField: "filedTime", SortRule: 1 }, d => d.FiledTime, OrderByType.Desc) //办结时间降序
|
|
|
+ .OrderByIF(dto is { SortField: "orgLevelOneName", SortRule: 0 }, d => d.OrgLevelOneName, OrderByType.Asc) //一级部门升序
|
|
|
+ .OrderByIF(dto is { SortField: "orgLevelOneName", SortRule: 1 }, d => d.OrgLevelOneName, OrderByType.Desc) //一级部门降序
|
|
|
+ .OrderByIF(dto is { SortField: "orgLevelTwoName", SortRule: 0 }, d => d.OrgLevelTwoName, OrderByType.Asc) //二级部门升序
|
|
|
+ .OrderByIF(dto is { SortField: "orgLevelTwoName", SortRule: 1 }, d => d.OrgLevelTwoName, OrderByType.Desc) //二级部门降序
|
|
|
+ .OrderByIF(dto is { SortField: "actualHandleOrgName", SortRule: 0 }, d => d.ActualHandleOrgName, OrderByType.Asc) //接办部门升序
|
|
|
+ .OrderByIF(dto is { SortField: "actualHandleOrgName", SortRule: 1 }, d => d.ActualHandleOrgName, OrderByType.Desc) //接办部门降序
|
|
|
+ .OrderByIF(dto is { SortField: "acceptType", SortRule: 0 }, d => d.AcceptTypeCode, OrderByType.Asc) //受理类型升序
|
|
|
+ .OrderByIF(dto is { SortField: "acceptType", SortRule: 1 }, d => d.AcceptTypeCode, OrderByType.Desc) //受理类型降序
|
|
|
+ .OrderByIF(dto is { SortField: "counterSignTypeText", SortRule: 0 }, d => d.CounterSignType, OrderByType.Asc) //是否会签升序
|
|
|
+ .OrderByIF(dto is { SortField: "counterSignTypeText", SortRule: 1 }, d => d.CounterSignType, OrderByType.Desc) //是否会签降序
|
|
|
+ .OrderByIF(dto is { SortField: "hotspotSpliceName", SortRule: 0 }, d => d.HotspotSpliceName, OrderByType.Asc) //热点分类全称升序
|
|
|
+ .OrderByIF(dto is { SortField: "hotspotSpliceName", SortRule: 1 }, d => d.HotspotSpliceName, OrderByType.Desc) //热点分类全称降序
|
|
|
+ .OrderByIF(dto is { SortField: "hotspotName", SortRule: 0 }, d => d.HotspotName, OrderByType.Asc) //热点分类升序
|
|
|
+ .OrderByIF(dto is { SortField: "hotspotName", SortRule: 1 }, d => d.HotspotName, OrderByType.Desc) //热点分类降序
|
|
|
+ .OrderByIF(dto is { SortField: "acceptorName", SortRule: 0 }, d => d.AcceptorName, OrderByType.Asc) //受理人升序
|
|
|
+ .OrderByIF(dto is { SortField: "acceptorName", SortRule: 1 }, d => d.AcceptorName, OrderByType.Desc) //受理人降序
|
|
|
+ .OrderByIF(dto is { SortField: "currentStepAcceptTime", SortRule: 0 }, d => d.CurrentStepAcceptTime, OrderByType.Asc) //接办时间升序
|
|
|
+ .OrderByIF(dto is { SortField: "currentStepAcceptTime", SortRule: 1 }, d => d.CurrentStepAcceptTime, OrderByType.Desc) //接办时间降序
|
|
|
+ ;
|
|
|
+
|
|
|
+ return query;
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 未签收统计
|
|
|
/// </summary>
|
|
@@ -3903,6 +4130,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
.Where((s, p) => p.DicDataValue == dto.OrderTagCode && d.OrderId == s.OrderId).Any()) //工单标签
|
|
|
.WhereIF(dto.IsUpdate.HasValue && dto.IsUpdate == true, d => d.IsUpdate == true)
|
|
|
.WhereIF(dto.IsUpdate.HasValue && dto.IsUpdate == false, d => d.IsUpdate == false || d.IsUpdate == null)
|
|
|
+ .WhereIF(dto.IsEmployeeNameNull.HasValue && dto.IsEmployeeNameNull == true, d => d.EmployeeId != null && d.EmployeeId != "")
|
|
|
+ .WhereIF(dto.IsEmployeeNameNull.HasValue && dto.IsEmployeeNameNull == false, d => d.EmployeeId == null || d.EmployeeId == "")
|
|
|
|
|
|
.OrderByIF(_appOptions.Value.IsYiBin && dto.VisitStateQuery != EVisitStateQuery.Visited, d => d.Order.IsUrgent, OrderByType.Desc)
|
|
|
.OrderByIF(_appOptions.Value.IsZiGong == false, d => d.PublishTime, OrderByType.Desc)
|
|
@@ -4079,7 +4308,6 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
OrgId = startStep.HandlerOrgId,
|
|
|
OrgName = startStep.HandlerOrgName,
|
|
|
};
|
|
|
- //_sessionContext.ChangeSession(startStep.HandlerId);
|
|
|
await _sessionContextManager.ChangeSessionContextByUserIdAsync(startStep.HandlerId, cancellationToken);
|
|
|
var isAutoFillSummaryOpinion = _systemSettingCacheManager.IsAutoFillSummaryOpinion;
|
|
|
|
|
@@ -5098,10 +5326,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
//);
|
|
|
|
|
|
//随手拍
|
|
|
- bool.TryParse(
|
|
|
- _systemSettingCacheManager.GetSetting(SettingConstants.Snapshot)?.SettingValue[0],
|
|
|
- out bool isSnapshotEnable);
|
|
|
- if (isSnapshotEnable && !string.IsNullOrEmpty(dto.IndustryId))
|
|
|
+
|
|
|
+ if (_systemSettingCacheManager.Snapshot && !string.IsNullOrEmpty(dto.IndustryId))
|
|
|
{
|
|
|
query.Where(d => d.OrderSnapshot.IndustryId == dto.IndustryId);
|
|
|
}
|
|
@@ -5571,7 +5797,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
//如果查询全部
|
|
|
//1.1、热线中心用户看系统中所有已申请延期的工单(需排除取消延期的工单)和自动延期的工单
|
|
|
//1.2、部门用户看部门及其下级部门已申请延期的工单(需排除取消延期的工单)和部门办理中时自动延期的工单
|
|
|
- .WhereIF(dto.DataScope is 0, d => (d.AutomaticDelayNum == 0 || d.AutomaticDelayNum == null) && d.DelayState != EDelayState.Withdraw)
|
|
|
+ // .WhereIF(dto.DataScope is 0, d => (d.AutomaticDelayNum == 0 || d.AutomaticDelayNum == null) && d.DelayState != EDelayState.Withdraw)
|
|
|
+ .WhereIF(dto.DataScope is 0, d => d.DelayState != EDelayState.Withdraw)
|
|
|
.WhereIF(dto.DataScope is 0 && !_sessionContext.OrgIsCenter, d => d.CreatorOrgId.StartsWith(_sessionContext.RequiredOrgId))
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Keyword),
|
|
|
d => d.Order.Title.Contains(dto.Keyword!) || d.Order.No.Contains(dto.Keyword!))
|