|
@@ -430,8 +430,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
_sessionContextProvider.SessionContext.Roles.Contains(step.RoleId))))
|
|
|
.Any())
|
|
|
// .WhereIF(orgLevel == 2 || orgLevel == 1, d => d.ActualHandleOrgCode.StartsWith(orgCode))
|
|
|
- .WhereIF(orgLevel == 2 || orgLevel == 1, d => SqlFunc.Subqueryable<WorkflowStep>()
|
|
|
- .Where(step => step.ExternalId == d.Id &&
|
|
|
+ .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)))
|
|
|
.Any())
|
|
@@ -486,7 +486,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
var seg = new Segment();
|
|
|
ICollection<WordInfo> splitWords = seg.DoSegment(inputStr);
|
|
|
var words = new List<string>();
|
|
|
- for (int i = 0;i < splitWords.Count;i++)
|
|
|
+ for (int i = 0; i < splitWords.Count; i++)
|
|
|
{
|
|
|
var word = splitWords.ElementAt(i);
|
|
|
if (word is { WordType: WordType.SimplifiedChinese, Word.Length: > 1 })
|
|
@@ -713,7 +713,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
visit.VisitTime = dto.VisitTime;
|
|
|
visit.VisitType = dto.VisitType;
|
|
|
|
|
|
- for (int i = 0;i < visit.OrderVisitDetails.Count;i++)
|
|
|
+ for (int i = 0; i < visit.OrderVisitDetails.Count; i++)
|
|
|
{
|
|
|
var detail = visit.OrderVisitDetails[i];
|
|
|
var detaildto = dto.OrderVisitDetailDto.FirstOrDefault(x => x.Id == detail.Id);
|
|
@@ -759,7 +759,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
/// <returns></returns>
|
|
|
public async Task<Order> SaveOrderWorkflowInfo(NextWorkflowDto<OrderHandleFlowDto> dto, CancellationToken cancellationToken)
|
|
|
{
|
|
|
- var order = await _orderRepository.Queryable().Includes(d=>d.OrderExtension)
|
|
|
+ var order = await _orderRepository.Queryable().Includes(d => d.OrderExtension)
|
|
|
.FirstAsync(d => d.Id == dto.Data.OrderId, cancellationToken)
|
|
|
?? throw UserFriendlyException.SameMessage("无效工单编号");
|
|
|
if (await _orderSendBackAuditRepository.AnyAsync(x => x.OrderId == order.Id && x.State == ESendBackAuditState.Apply,
|
|
@@ -771,12 +771,12 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
ExpiredTimeWithConfig? expiredTimeConfig = null;
|
|
|
var settingBase = _systemSettingCacheManager.GetSetting(SettingConstants.CityBaseConfiguration)?.SettingValue[0];
|
|
|
CityBaseConfiguration cityBase = System.Text.Json.JsonSerializer.Deserialize<CityBaseConfiguration>(settingBase);
|
|
|
- if (dto.Workflow.NextHandlers.Any(d => d.Key == cityBase.CityProvince.OrgId || d.Key == cityBase.CityProvinceAssign.OrgId))
|
|
|
+ if (dto.Workflow.NextHandlers.Any(d => d.Key == cityBase.CityProvince.OrgId || d.Key == cityBase.CityProvinceAssign.OrgId))
|
|
|
{
|
|
|
- if (dto.Workflow.NextHandlers.Any(d => d.Key == cityBase.CityProvince.OrgId) && order.OrderExtension is null)
|
|
|
- {
|
|
|
- throw UserFriendlyException.SameMessage("该工单不存在拓展信息,不能推送至全国12315平台!");
|
|
|
- }
|
|
|
+ if (dto.Workflow.NextHandlers.Any(d => d.Key == cityBase.CityProvince.OrgId) && order.OrderExtension is null)
|
|
|
+ {
|
|
|
+ throw UserFriendlyException.SameMessage("该工单不存在拓展信息,不能推送至全国12315平台!");
|
|
|
+ }
|
|
|
var timeResult = await _expireTime.CalcEndTime(DateTime.Now, ETimeType.WorkDay, 45, 80, 50);
|
|
|
expiredTimeConfig = new ExpiredTimeWithConfig
|
|
|
{
|
|
@@ -906,7 +906,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
visit.JudgeState = EJudgeState.Judging;
|
|
|
}
|
|
|
|
|
|
- for (int i = 0;i < visit.OrderVisitDetails.Count;i++)
|
|
|
+ for (int i = 0; i < visit.OrderVisitDetails.Count; i++)
|
|
|
{
|
|
|
var detail = visit.OrderVisitDetails[i];
|
|
|
var detaildto = dto.VisitDetails.FirstOrDefault(x => x.Id == detail.Id);
|
|
@@ -1057,121 +1057,122 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
step.HandlerOrgId.StartsWith(_sessionContextProvider.SessionContext.RequiredOrgId)).Any());
|
|
|
}
|
|
|
|
|
|
- query = query.Includes(x => x.OrderScreens);
|
|
|
- if (!_appOptions.Value.IsYiBin)
|
|
|
- {
|
|
|
- query = query.Includes(x => x.OrderVisits.Where(m => m.VisitState == EVisitState.Visited).ToList())
|
|
|
- .Includes(x => x.OrderVisits.Where(m => m.VisitState == EVisitState.Visited).ToList(), ovd => ovd.OrderVisitDetails);
|
|
|
- }
|
|
|
- query = query
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.Contains(dto.Keyword!)) //标题
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.ProvinceNo), d => d.ProvinceNo == dto.ProvinceNo) //省本地编号
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.ReceiveProvinceNo), d => d.ReceiveProvinceNo == dto.ReceiveProvinceNo) //省编号
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No == 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(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 == dto.FromPhone) //来电号码
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.PhoneNo), d => d.Contact == 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.ActualHandleTime >= dto.ActualHandleTimeStart) //办结时间开始
|
|
|
- .WhereIF(dto.ActualHandleTimeEnd.HasValue, d => d.ActualHandleTime <= dto.ActualHandleTimeEnd) //办结时间结束
|
|
|
- .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 == 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, d => d.Source == ESource.ProvinceStraight)
|
|
|
- .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == false, 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(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.ProcessType == EProcessType.Zhiban)
|
|
|
- .WhereIF(dto.FiledType is FiledType.OrgFiled, d => d.ProcessType == EProcessType.Jiaoban)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.OrderTagCode), d => d.OrderTagCode == dto.OrderTagCode)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.FocusOnEvents),d=>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: "startTime",SortRule:0 },d=>d.StartTime,OrderByType.Asc) //受理时间升序
|
|
|
- .OrderByIF(dto is { SortField: "startTime",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) //受理人降序
|
|
|
- ;
|
|
|
+ query = query.Includes(x => x.OrderScreens);
|
|
|
+ if (!_appOptions.Value.IsYiBin)
|
|
|
+ {
|
|
|
+ query = query.Includes(x => x.OrderVisits.Where(m => m.VisitState == EVisitState.Visited).ToList())
|
|
|
+ .Includes(x => x.OrderVisits.Where(m => m.VisitState == EVisitState.Visited).ToList(), ovd => ovd.OrderVisitDetails);
|
|
|
+ }
|
|
|
+ query = query
|
|
|
+ .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(!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(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.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.ActualHandleTime >= dto.ActualHandleTimeStart) //办结时间开始
|
|
|
+ .WhereIF(dto.ActualHandleTimeEnd.HasValue, d => d.ActualHandleTime <= dto.ActualHandleTimeEnd) //办结时间结束
|
|
|
+ .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 == 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, d => d.Source == ESource.ProvinceStraight)
|
|
|
+ .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == false, 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(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.ProcessType == EProcessType.Zhiban)
|
|
|
+ .WhereIF(dto.FiledType is FiledType.OrgFiled, d => d.ProcessType == EProcessType.Jiaoban)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.OrderTagCode), d => d.OrderTagCode == dto.OrderTagCode)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.FocusOnEvents), d => 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: "startTime", SortRule: 0 }, d => d.StartTime, OrderByType.Asc) //受理时间升序
|
|
|
+ .OrderByIF(dto is { SortField: "startTime", 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) //受理人降序
|
|
|
+ ;
|
|
|
|
|
|
return query;
|
|
|
}
|
|
@@ -1326,8 +1327,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
var quer = _orderRepository.Queryable()
|
|
|
.InnerJoin<SystemOrganize>((x, so) => x.ActualHandleOrgCode == so.Id && so.Level == 1)
|
|
|
.Where((x, so) => x.CreationTime >= dto.StartTime && x.CreationTime <= dto.EndTime)
|
|
|
- //.WhereIF(dto.Statuses.Any(), x => dto.Statuses.Contains(x.Status)) //工单状态
|
|
|
- .WhereIF(dto.QueryType == 1, (x, so) => x.Status >= EOrderStatus.Filed && x.ExpiredTime < x.FiledTime) //业务已办超期
|
|
|
+ //.WhereIF(dto.Statuses.Any(), x => dto.Statuses.Contains(x.Status)) //工单状态
|
|
|
+ .WhereIF(dto.QueryType == 1, (x, so) => x.Status >= EOrderStatus.Filed && x.ExpiredTime < x.FiledTime) //业务已办超期
|
|
|
.WhereIF(dto.QueryType == 3, (x, so) => x.Status < EOrderStatus.Filed && x.ExpiredTime < SqlFunc.GetDate()) //业务待办超期
|
|
|
.WhereIF(dto.TypeId != null && dto.TypeId == 1, (x, so) => x.IdentityType == EIdentityType.Citizen)
|
|
|
.WhereIF(dto.TypeId != null && dto.TypeId == 2, (x, so) => x.IdentityType == EIdentityType.Enterprise)
|
|
@@ -1353,7 +1354,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
|
|
|
quer = _orderRepository.Queryable().InnerJoin(queryCountersign, (o, w) => o.Id == w.Id)
|
|
|
.Select((o, w) => new Order { DaysOverdueOrgName = w.HandlerOrgName, Id = o.Id.SelectAll() })
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.No), o => o.No == dto.No);
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.No), o => o.No == dto.No);
|
|
|
//quer = _orderRepository.UnionAll(quer, queryCountersignOrder);
|
|
|
}
|
|
|
|
|
@@ -1372,7 +1373,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
var quer = _orderRepository.Queryable()
|
|
|
.InnerJoin<SystemOrganize>((x, so) => x.ActualHandleOrgCode == so.Id && so.Level == 1)
|
|
|
.Where((x, so) => x.CreationTime >= dto.StartTime && x.CreationTime <= dto.EndTime)
|
|
|
- .WhereIF(dto.Statuses.Any(), (x, so) => dto.Statuses.Contains(x.Status)) //工单状态
|
|
|
+ .WhereIF(dto.Statuses.Any(), (x, so) => dto.Statuses.Contains(x.Status)) //工单状态
|
|
|
.WhereIF(dto.ExpiredType is 2, (x, so) => x.OrderDelays.Any(x => x.DelayState == EDelayState.Pass))
|
|
|
.Where((x, so) =>
|
|
|
(x.Status >= EOrderStatus.Filed && x.ExpiredTime < x.FiledTime) ||
|
|
@@ -1398,7 +1399,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
.Select((o, w) => new Order { DaysOverdueOrgName = w.HandlerOrgName, Id = o.Id.SelectAll() });
|
|
|
quer = _orderRepository.UnionAll(quer, queryCountersignOrder).MergeTable()
|
|
|
.InnerJoin<SystemOrganize>((x, so) => x.ActualHandleOrgCode == so.Id)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.No), (x, so) => x.No == dto.No);
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.No), (x, so) => x.No == dto.No);
|
|
|
return quer;
|
|
|
}
|
|
|
|
|
@@ -1412,7 +1413,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
return _orderSpecialDetailRepository.Queryable()
|
|
|
.Includes(x => x.OrderSpecial)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.OrgName), x => x.OrgName.Contains(dto.OrgName!))
|
|
|
- .Where(x => x.OrderSpecial.SpecialType == ESpecialType.ReTransact || x.OrderSpecial.SpecialType == ESpecialType.SendBack )
|
|
|
+ .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)
|
|
|
.GroupBy(x => new { Time = x.OrderSpecial.CreationTime.ToString("yyyy-MM-dd"), x.OrgId, x.OrgName })
|
|
@@ -1786,10 +1787,10 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
dt.Columns.Remove("Column1");
|
|
|
|
|
|
//计算小计
|
|
|
- for (int i = 0;i < dt.Rows.Count;i++)
|
|
|
+ for (int i = 0; i < dt.Rows.Count; i++)
|
|
|
{
|
|
|
int sumcount = 0;
|
|
|
- for (int j = 1;j < dt.Columns.Count - 1;j++)
|
|
|
+ for (int j = 1; j < dt.Columns.Count - 1; j++)
|
|
|
{
|
|
|
sumcount += Convert.ToInt32(dt.Rows[i][j].ToString());
|
|
|
}
|
|
@@ -1801,10 +1802,10 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
DataRow totalRow = dt.NewRow();
|
|
|
if (dt.Columns[0].ColumnName == "HotspotName") totalRow["HotspotName"] = "合计";
|
|
|
else totalRow["一级热点"] = "合计";
|
|
|
- for (int i = 1;i < dt.Columns.Count;i++)
|
|
|
+ for (int i = 1; i < dt.Columns.Count; i++)
|
|
|
{
|
|
|
int sumcount = 0;
|
|
|
- for (int j = 0;j < dt.Rows.Count;j++)
|
|
|
+ for (int j = 0; j < dt.Rows.Count; j++)
|
|
|
{
|
|
|
sumcount += Convert.ToInt32(dt.Rows[j][i].ToString());
|
|
|
}
|
|
@@ -2318,7 +2319,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
public ISugarQueryable<OrderScreenAuditVo> OrderScreenAudit(OrderScreenAuditPagedRequest dto)
|
|
|
{
|
|
|
var query = _workflowTraceRepository.Queryable()
|
|
|
- .Where(x=>x.ModuleCode == "OrderScreen")
|
|
|
+ .Where(x => x.ModuleCode == "OrderScreen")
|
|
|
.WhereIF(dto.StartTime.HasValue && dto.EndTime.HasValue, x => x.HandleTime >= dto.StartTime && x.HandleTime <= dto.EndTime)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.AuditUserName), x => x.HandlerName == dto.AuditUserName)
|
|
|
.Where(x => x.HandlerName != null && x.HandlerName != "")
|
|
@@ -2414,21 +2415,21 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
}
|
|
|
|
|
|
return query
|
|
|
- .Includes(d => d.Order)
|
|
|
- .Includes(d => d.VisitDetail)
|
|
|
- .Includes(d => d.Visit, v => v.Order)
|
|
|
- .Includes(d => d.Workflow)
|
|
|
- .Includes(d => d.ScreenDetails.Where(sd => sd.AuditUserId == _sessionContext.UserId).OrderByDescending(sd => sd.AuditTime).Take(1)
|
|
|
- .ToList())
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.Title), d => d.Visit.Order.Title.Contains(dto.Title!))
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.Visit.Order.No.Contains(dto.No!))
|
|
|
- .WhereIF(dto.TabStatus is EScreenStatus.Apply, d => (d.Status == EScreenStatus.Apply || d.Status == EScreenStatus.Approval || (d.Status == EScreenStatus.SendBack && d.SendBackApply == false)))
|
|
|
- .WhereIF(dto.TabStatus.HasValue && dto.Status == EScreenStatus.MyHandle, d => (d.Status != EScreenStatus.Apply))
|
|
|
- .WhereIF(dto.DataScope is 1, d => d.CreatorId == _sessionContext.RequiredUserId)
|
|
|
+ .Includes(d => d.Order)
|
|
|
+ .Includes(d => d.VisitDetail)
|
|
|
+ .Includes(d => d.Visit, v => v.Order)
|
|
|
+ .Includes(d => d.Workflow)
|
|
|
+ .Includes(d => d.ScreenDetails.Where(sd => sd.AuditUserId == _sessionContext.UserId).OrderByDescending(sd => sd.AuditTime).Take(1)
|
|
|
+ .ToList())
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Title), d => d.Visit.Order.Title.Contains(dto.Title!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.Visit.Order.No.Contains(dto.No!))
|
|
|
+ .WhereIF(dto.TabStatus is EScreenStatus.Apply, d => (d.Status == EScreenStatus.Apply || d.Status == EScreenStatus.Approval || (d.Status == EScreenStatus.SendBack && d.SendBackApply == false)))
|
|
|
+ .WhereIF(dto.TabStatus.HasValue && dto.Status == EScreenStatus.MyHandle, d => (d.Status != EScreenStatus.Apply))
|
|
|
+ .WhereIF(dto.DataScope is 1, d => d.CreatorId == _sessionContext.RequiredUserId)
|
|
|
.WhereIF(dto.Status.HasValue, d => d.Status == dto.Status)
|
|
|
- .WhereIF(dto.QueryScreenType is EQueryOrderScreenType.Org , d=>d.ScreenType == EOrderScreenType.Org)
|
|
|
+ .WhereIF(dto.QueryScreenType is EQueryOrderScreenType.Org, d => d.ScreenType == EOrderScreenType.Org)
|
|
|
.WhereIF(dto.QueryScreenType is EQueryOrderScreenType.Seat, d => d.ScreenType == EOrderScreenType.Seat)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.Order!.AcceptTypeCode! == dto.AcceptType!)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.Order!.AcceptTypeCode! == dto.AcceptType!)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.HotspotSpliceName), d => d.Order!.Hotspot.HotSpotFullName!.StartsWith(dto.HotspotSpliceName!))
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.SourceChannel), d => d.Order!.SourceChannelCode! == dto.SourceChannel!)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.VisitOrgName), d => d.VisitDetail.VisitOrgName!.Contains(dto.VisitOrgName!))
|
|
@@ -2457,7 +2458,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
.OrderByIF(dto is { SortRule: 1, SortField: "creationTime" } || dto.SortRule is null, d => d.CreationTime, OrderByType.Desc);
|
|
|
}
|
|
|
|
|
|
- public ISugarQueryable<OrderVisitDetail> MayScreenList(MayScreenListDto dto) {
|
|
|
+ public ISugarQueryable<OrderVisitDetail> MayScreenList(MayScreenListDto dto)
|
|
|
+ {
|
|
|
var query = _orderVisitedDetailRepository.Queryable(false, true)
|
|
|
.Includes(x => x.OrderVisit)
|
|
|
.Includes(x => x.OrderVisit, y => y.Order)
|
|
@@ -2476,7 +2478,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
false)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.No), x => x.OrderVisit.Order!.No!.Contains(dto.No!))
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.NameOrNo), x => x.OrderVisit.Order!.AcceptorName == dto.NameOrNo! || x.OrderVisit.Order!.AcceptorStaffNo == dto.NameOrNo!) //受理人/坐席
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.Title), x => x.OrderVisit.Order!.Title!.Contains(dto.Title!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Title), x => x.OrderVisit.Order!.Title!.Contains(dto.Title!))
|
|
|
.WhereIF(dto.IsProvince.HasValue, x => x.OrderVisit.Order!.IsProvince == dto.IsProvince)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.AcceptType), x => x.OrderVisit.Order!.AcceptTypeCode! == dto.AcceptType!)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.HotspotSpliceName),
|
|
@@ -2505,111 +2507,111 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
//.WhereIF(!string.IsNullOrEmpty(dto.OrgNoSatisfiedReason),
|
|
|
// x => SqlFunc.JsonField(x.OrgNoSatisfiedReason, "Key") == dto.OrgNoSatisfiedReason)
|
|
|
.Where(x => x.OrderVisit.VisitState == EVisitState.Visited && x.OrderVisit.IsCanHandle);
|
|
|
- if (_sessionContext.OrgId != null && !_sessionContext.OrgIsCenter)
|
|
|
- {
|
|
|
- query.WhereIF(!string.IsNullOrEmpty(dto.Keyword),
|
|
|
- x => x.OrderVisit.Order.Title.Contains(dto.Keyword!) ||
|
|
|
- x.OrderVisit.Order.No.Contains(dto.Keyword!))
|
|
|
- .Where(x => x.VisitTarget == EVisitTarget.Org && x.VisitOrgCode == _sessionContext.OrgId && (
|
|
|
- SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "1" ||
|
|
|
- SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "2" ||
|
|
|
- SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "1" ||
|
|
|
- SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "2"
|
|
|
- ));
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- query.WhereIF(!string.IsNullOrEmpty(dto.Keyword),
|
|
|
- x => x.OrderVisit.Order.Title.Contains(dto.Keyword!) ||
|
|
|
- x.OrderVisit.Order.No.Contains(dto.Keyword!))
|
|
|
- .WhereIF(dto.ScreenType == EOrderScreenType.Org, x => x.VisitTarget == EVisitTarget.Org && (
|
|
|
- SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "1" ||
|
|
|
- SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "2" ||
|
|
|
- SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "1" ||
|
|
|
- SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "2"
|
|
|
- ))
|
|
|
- .WhereIF(dto.ScreenType == EOrderScreenType.Seat,
|
|
|
- x => x.VisitTarget == EVisitTarget.Seat &&
|
|
|
- (x.SeatEvaluate == ESeatEvaluate.VeryNoSatisfied || x.SeatEvaluate == ESeatEvaluate.NoSatisfied))
|
|
|
- ;
|
|
|
- }
|
|
|
-
|
|
|
- return query.OrderByIF(dto is { SortRule: 0, SortField: "order.startTime" }, x => x.OrderVisit.Order.StartTime, OrderByType.Asc)
|
|
|
- .OrderByIF(dto is { SortRule: 1, SortField: "order.startTime" }, x => x.OrderVisit.Order.StartTime, OrderByType.Desc)
|
|
|
- .OrderByIF(dto is { SortRule: 0, SortField: "order.actualHandleTime" }, x => x.OrderVisit.Order.ActualHandleTime, OrderByType.Asc)
|
|
|
- .OrderByIF(dto is { SortRule: 1, SortField: "order.actualHandleTime" }, x => x.OrderVisit.Order.ActualHandleTime, OrderByType.Desc)
|
|
|
- .OrderByIF(dto is { SortRule: 0, SortField: "order.filedTime" }, x => x.OrderVisit.Order.FiledTime, OrderByType.Asc)
|
|
|
- .OrderByIF(dto is { SortRule: 1, SortField: "order.filedTime" }, x => x.OrderVisit.Order.FiledTime, OrderByType.Desc)
|
|
|
- .OrderByIF(dto is { SortRule: 0, SortField: "orderVisit.visitTime" }, x => x.OrderVisit.VisitTime, OrderByType.Asc)
|
|
|
- .OrderByIF(dto is { SortRule: 1, SortField: "orderVisit.visitTime" }, x => x.OrderVisit.VisitTime, OrderByType.Desc)
|
|
|
- .OrderByIF(dto.SortRule is null, x => x.CreationTime, OrderByType.Desc);
|
|
|
- }
|
|
|
- #endregion
|
|
|
-
|
|
|
- #region 特提
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 特提验证
|
|
|
- /// </summary>
|
|
|
- /// <param name="dto"></param>
|
|
|
- public async Task SpecialVerify(OrderSpecialAddDto dto, Order order, CancellationToken cancellationToken)
|
|
|
- {
|
|
|
- var screen = await _orderScreenRepository.Queryable().Where(x => x.OrderId == dto.OrderId && (int)x.Status < 2).ToListAsync(cancellationToken);
|
|
|
- //var order = await _orderRepository.Queryable().Includes(d => d.Workflow).FirstAsync(d => d.Id == dto.OrderId);
|
|
|
- var sendBackAudit = await _orderSendBackAuditRepository.Queryable().Where(x => x.OrderId == dto.OrderId && x.State == ESendBackAuditState.Apply).ToListAsync(cancellationToken);
|
|
|
- //if (_appOptions.Value.IsYiBin)
|
|
|
- //{
|
|
|
- // if (screen.Any())
|
|
|
- // {
|
|
|
- // _orderScreenRepository.RemoveRangeAsync(screen, true, cancellationToken);
|
|
|
- // }
|
|
|
-
|
|
|
- // if (sendBackAudit.Any())
|
|
|
- // {
|
|
|
- // _orderSendBackAuditRepository.RemoveRangeAsync(sendBackAudit, true, cancellationToken);
|
|
|
- // }
|
|
|
-
|
|
|
- // if (order.Workflow.IsInCountersign)
|
|
|
- // {
|
|
|
- // var workflowStep = await _workflowStepRepository.Queryable().Where(x => x.Id == order.Workflow.TopCountersignStepId).FirstAsync(cancellationToken);
|
|
|
- // if (workflowStep != null)
|
|
|
- // {
|
|
|
- // var dtoEnd = new EndCountersignDto() { CountersignId = workflowStep.StartCountersignId };
|
|
|
- // await EndCountersign(dtoEnd,cancellationToken);
|
|
|
- // }
|
|
|
- // }
|
|
|
- //}
|
|
|
- //else
|
|
|
- //{
|
|
|
- if (screen.Any()) throw UserFriendlyException.SameMessage("工单存在甄别中的信息!");
|
|
|
-
|
|
|
- if (sendBackAudit.Any())
|
|
|
- throw UserFriendlyException.SameMessage("该工单存在正在审核中的退回,不能办理");
|
|
|
-
|
|
|
- if (order.Workflow.IsInCountersign) throw UserFriendlyException.SameMessage("工单会签中,无法进行特提!");
|
|
|
- //}
|
|
|
- }
|
|
|
-
|
|
|
- public async Task EndCountersign( EndCountersignDto dto, CancellationToken cancellationToken)
|
|
|
- {
|
|
|
- var workflow = await _workflowDomainService.TerminalCountersignAsync(dto.CountersignId, cancellationToken);
|
|
|
- var order = await _orderRepository.GetAsync(d => d.WorkflowId == workflow.Id, cancellationToken);
|
|
|
- if (order is null)
|
|
|
- throw new UserFriendlyException($"工单未开启流程, workflowId: {workflow.Id}");
|
|
|
- order.UpdateHandlingStatus(workflow.IsInCountersign);
|
|
|
- _mapper.Map(workflow, order);
|
|
|
- await _orderRepository.UpdateAsync(order, cancellationToken);
|
|
|
- }
|
|
|
- #endregion
|
|
|
-
|
|
|
- #region private
|
|
|
- /// <summary>
|
|
|
- /// 接受外部工单(除省平台)
|
|
|
- /// </summary>
|
|
|
- /// <param name="dto"></param>
|
|
|
- /// <param name="cancellationToken"></param>
|
|
|
- /// <returns></returns>
|
|
|
- private async Task<AddOrderResponse> ReceiveOrderFromOtherPlatformAsync(AddOrderDto dto, List<FileDto> files, CancellationToken cancellationToken)
|
|
|
+ if (_sessionContext.OrgId != null && !_sessionContext.OrgIsCenter)
|
|
|
+ {
|
|
|
+ query.WhereIF(!string.IsNullOrEmpty(dto.Keyword),
|
|
|
+ x => x.OrderVisit.Order.Title.Contains(dto.Keyword!) ||
|
|
|
+ x.OrderVisit.Order.No.Contains(dto.Keyword!))
|
|
|
+ .Where(x => x.VisitTarget == EVisitTarget.Org && x.VisitOrgCode == _sessionContext.OrgId && (
|
|
|
+ SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "1" ||
|
|
|
+ SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "2" ||
|
|
|
+ SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "1" ||
|
|
|
+ SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "2"
|
|
|
+ ));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ query.WhereIF(!string.IsNullOrEmpty(dto.Keyword),
|
|
|
+ x => x.OrderVisit.Order.Title.Contains(dto.Keyword!) ||
|
|
|
+ x.OrderVisit.Order.No.Contains(dto.Keyword!))
|
|
|
+ .WhereIF(dto.ScreenType == EOrderScreenType.Org, x => x.VisitTarget == EVisitTarget.Org && (
|
|
|
+ SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "1" ||
|
|
|
+ SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "2" ||
|
|
|
+ SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "1" ||
|
|
|
+ SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "2"
|
|
|
+ ))
|
|
|
+ .WhereIF(dto.ScreenType == EOrderScreenType.Seat,
|
|
|
+ x => x.VisitTarget == EVisitTarget.Seat &&
|
|
|
+ (x.SeatEvaluate == ESeatEvaluate.VeryNoSatisfied || x.SeatEvaluate == ESeatEvaluate.NoSatisfied))
|
|
|
+ ;
|
|
|
+ }
|
|
|
+
|
|
|
+ return query.OrderByIF(dto is { SortRule: 0, SortField: "order.startTime" }, x => x.OrderVisit.Order.StartTime, OrderByType.Asc)
|
|
|
+ .OrderByIF(dto is { SortRule: 1, SortField: "order.startTime" }, x => x.OrderVisit.Order.StartTime, OrderByType.Desc)
|
|
|
+ .OrderByIF(dto is { SortRule: 0, SortField: "order.actualHandleTime" }, x => x.OrderVisit.Order.ActualHandleTime, OrderByType.Asc)
|
|
|
+ .OrderByIF(dto is { SortRule: 1, SortField: "order.actualHandleTime" }, x => x.OrderVisit.Order.ActualHandleTime, OrderByType.Desc)
|
|
|
+ .OrderByIF(dto is { SortRule: 0, SortField: "order.filedTime" }, x => x.OrderVisit.Order.FiledTime, OrderByType.Asc)
|
|
|
+ .OrderByIF(dto is { SortRule: 1, SortField: "order.filedTime" }, x => x.OrderVisit.Order.FiledTime, OrderByType.Desc)
|
|
|
+ .OrderByIF(dto is { SortRule: 0, SortField: "orderVisit.visitTime" }, x => x.OrderVisit.VisitTime, OrderByType.Asc)
|
|
|
+ .OrderByIF(dto is { SortRule: 1, SortField: "orderVisit.visitTime" }, x => x.OrderVisit.VisitTime, OrderByType.Desc)
|
|
|
+ .OrderByIF(dto.SortRule is null, x => x.CreationTime, OrderByType.Desc);
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ #region 特提
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 特提验证
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ public async Task SpecialVerify(OrderSpecialAddDto dto, Order order, CancellationToken cancellationToken)
|
|
|
+ {
|
|
|
+ var screen = await _orderScreenRepository.Queryable().Where(x => x.OrderId == dto.OrderId && (int)x.Status < 2).ToListAsync(cancellationToken);
|
|
|
+ //var order = await _orderRepository.Queryable().Includes(d => d.Workflow).FirstAsync(d => d.Id == dto.OrderId);
|
|
|
+ var sendBackAudit = await _orderSendBackAuditRepository.Queryable().Where(x => x.OrderId == dto.OrderId && x.State == ESendBackAuditState.Apply).ToListAsync(cancellationToken);
|
|
|
+ //if (_appOptions.Value.IsYiBin)
|
|
|
+ //{
|
|
|
+ // if (screen.Any())
|
|
|
+ // {
|
|
|
+ // _orderScreenRepository.RemoveRangeAsync(screen, true, cancellationToken);
|
|
|
+ // }
|
|
|
+
|
|
|
+ // if (sendBackAudit.Any())
|
|
|
+ // {
|
|
|
+ // _orderSendBackAuditRepository.RemoveRangeAsync(sendBackAudit, true, cancellationToken);
|
|
|
+ // }
|
|
|
+
|
|
|
+ // if (order.Workflow.IsInCountersign)
|
|
|
+ // {
|
|
|
+ // var workflowStep = await _workflowStepRepository.Queryable().Where(x => x.Id == order.Workflow.TopCountersignStepId).FirstAsync(cancellationToken);
|
|
|
+ // if (workflowStep != null)
|
|
|
+ // {
|
|
|
+ // var dtoEnd = new EndCountersignDto() { CountersignId = workflowStep.StartCountersignId };
|
|
|
+ // await EndCountersign(dtoEnd,cancellationToken);
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ //else
|
|
|
+ //{
|
|
|
+ if (screen.Any()) throw UserFriendlyException.SameMessage("工单存在甄别中的信息!");
|
|
|
+
|
|
|
+ if (sendBackAudit.Any())
|
|
|
+ throw UserFriendlyException.SameMessage("该工单存在正在审核中的退回,不能办理");
|
|
|
+
|
|
|
+ if (order.Workflow.IsInCountersign) throw UserFriendlyException.SameMessage("工单会签中,无法进行特提!");
|
|
|
+ //}
|
|
|
+ }
|
|
|
+
|
|
|
+ public async Task EndCountersign(EndCountersignDto dto, CancellationToken cancellationToken)
|
|
|
+ {
|
|
|
+ var workflow = await _workflowDomainService.TerminalCountersignAsync(dto.CountersignId, cancellationToken);
|
|
|
+ var order = await _orderRepository.GetAsync(d => d.WorkflowId == workflow.Id, cancellationToken);
|
|
|
+ if (order is null)
|
|
|
+ throw new UserFriendlyException($"工单未开启流程, workflowId: {workflow.Id}");
|
|
|
+ order.UpdateHandlingStatus(workflow.IsInCountersign);
|
|
|
+ _mapper.Map(workflow, order);
|
|
|
+ await _orderRepository.UpdateAsync(order, cancellationToken);
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ #region private
|
|
|
+ /// <summary>
|
|
|
+ /// 接受外部工单(除省平台)
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <param name="cancellationToken"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ private async Task<AddOrderResponse> ReceiveOrderFromOtherPlatformAsync(AddOrderDto dto, List<FileDto> files, CancellationToken cancellationToken)
|
|
|
{
|
|
|
if (string.IsNullOrEmpty(dto.ExternalId))
|
|
|
throw new UserFriendlyException("工单外部编号不能为空");
|
|
@@ -2697,36 +2699,36 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
|
|
|
_mapper.Map(expiredTimeConfig, order);
|
|
|
await _orderRepository.UpdateAsync(order, cancellationToken);
|
|
|
- //特提(撤回至发起)
|
|
|
- if (!string.IsNullOrEmpty(order.WorkflowId))
|
|
|
+ //特提(撤回至发起)
|
|
|
+ if (!string.IsNullOrEmpty(order.WorkflowId))
|
|
|
{
|
|
|
var nextHandler = new List<FlowStepHandler>();
|
|
|
- if (_appOptions.Value.IsZiGong)
|
|
|
- {
|
|
|
- // 平均派单
|
|
|
- var averageSendOrder = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.AverageSendOrder).SettingValue[0]);
|
|
|
- if (averageSendOrder)
|
|
|
- {
|
|
|
+ if (_appOptions.Value.IsZiGong)
|
|
|
+ {
|
|
|
+ // 平均派单
|
|
|
+ var averageSendOrder = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.AverageSendOrder).SettingValue[0]);
|
|
|
+ if (averageSendOrder)
|
|
|
+ {
|
|
|
var handler = await _orderDomainService.AverageOrder(cancellationToken);
|
|
|
nextHandler = new List<FlowStepHandler> { handler };
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- //await _workflowDomainService.RecallToStartStepAsync(order.WorkflowId, "省工单重派", current, order.Status >= EOrderStatus.Filed, cancellationToken);
|
|
|
- var isPaiDan = await _workflowDomainService.RecallToCenterFirstToSendAsync(order.WorkflowId, "省工单重派", order.Status >= EOrderStatus.Filed,
|
|
|
+ }
|
|
|
+
|
|
|
+ //await _workflowDomainService.RecallToStartStepAsync(order.WorkflowId, "省工单重派", current, order.Status >= EOrderStatus.Filed, cancellationToken);
|
|
|
+ var isPaiDan = await _workflowDomainService.RecallToCenterFirstToSendAsync(order.WorkflowId, "省工单重派", order.Status >= EOrderStatus.Filed,
|
|
|
order.ExpiredTime, nextHandler, cancellationToken);
|
|
|
order.FileEmpty();
|
|
|
|
|
|
var status = EOrderStatus.WaitForAccept;
|
|
|
- if (isPaiDan)
|
|
|
+ if (isPaiDan)
|
|
|
{
|
|
|
order.Status = EOrderStatus.Handling;
|
|
|
}
|
|
|
- await _orderRepository.Updateable().SetColumns(o => new Order{ Status = status }).Where(o => o.Id == order.Id).ExecuteCommandAsync(cancellationToken);
|
|
|
- //await _orderRepository.UpdateAsync(order, cancellationToken);
|
|
|
- //处理回访和发布信息
|
|
|
+ await _orderRepository.Updateable().SetColumns(o => new Order { Status = status }).Where(o => o.Id == order.Id).ExecuteCommandAsync(cancellationToken);
|
|
|
+ //await _orderRepository.UpdateAsync(order, cancellationToken);
|
|
|
+ //处理回访和发布信息
|
|
|
|
|
|
- var publish = await _orderPublishRepository.GetAsync(x => x.OrderId == order.Id);
|
|
|
+ var publish = await _orderPublishRepository.GetAsync(x => x.OrderId == order.Id);
|
|
|
if (publish != null)
|
|
|
{
|
|
|
var publishHistory = _mapper.Map<OrderPublishHistory>(publish);
|
|
@@ -2749,8 +2751,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- //await _workflowDomainService.RecallToStartStepAsync(order.WorkflowId, "省工单重派", current, cancellationToken);
|
|
|
- }
|
|
|
+ //await _workflowDomainService.RecallToStartStepAsync(order.WorkflowId, "省工单重派", current, cancellationToken);
|
|
|
+ }
|
|
|
return _mapper.Map<AddOrderResponse>(order);
|
|
|
}
|
|
|
|
|
@@ -3012,113 +3014,113 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
/// <param name="isExport"></param>
|
|
|
/// <returns></returns>
|
|
|
public async Task<(List<SystemDicData> acceptTypes, object items, DataTable data)> AcceptTypeTop10List(ReportPagedRequest dto, bool isExport)
|
|
|
- {
|
|
|
-
|
|
|
- var dicList = _systemDicDataRepository.Queryable().Where(x => x.DicTypeCode == "AcceptType").OrderBy(x => x.Sort).MergeTable();
|
|
|
- var IsCenter = _sessionContext.OrgIsCenter;
|
|
|
-
|
|
|
- var hotspotList = _hotspotRepository.Queryable().Where(x => SqlFunc.Length(x.Id) == 2)
|
|
|
- .Select(x => new
|
|
|
- {
|
|
|
- HotspotId = x.Id,
|
|
|
- HotspotName = x.HotSpotFullName,
|
|
|
- }).MergeTable();
|
|
|
-
|
|
|
- var orderList = _orderRepository.Queryable()
|
|
|
- .WhereIF(dto.StartTime.HasValue, x => x.CreationTime >= dto.StartTime)
|
|
|
- .WhereIF(dto.EndTime.HasValue, x => x.CreationTime <= dto.EndTime)
|
|
|
- .WhereIF(IsCenter == false, x => x.ActualHandleOrgCode.StartsWith(_sessionContext.RequiredOrgId))
|
|
|
- .Select(x => new
|
|
|
- {
|
|
|
- HotspotId = x.HotspotId.Substring(0, 2),
|
|
|
- AcceptTypeCode = x.AcceptTypeCode,
|
|
|
- }).MergeTable();
|
|
|
-
|
|
|
- var hotListAndOrder = hotspotList.LeftJoin(orderList, (it, o) => it.HotspotId == o.HotspotId)
|
|
|
- .GroupBy((it, o) => new
|
|
|
- {
|
|
|
- it.HotspotId,
|
|
|
- it.HotspotName,
|
|
|
- AcceptTypeCode = o.AcceptTypeCode,
|
|
|
- })
|
|
|
- .OrderBy((it, o) => it.HotspotId)
|
|
|
- .Select((it, o) => new
|
|
|
- {
|
|
|
- HotspotId = it.HotspotId,
|
|
|
- HotspotName = it.HotspotName,
|
|
|
- AcceptTypeCode = o.AcceptTypeCode,
|
|
|
- Count = SqlFunc.AggregateCount(it.HotspotId)
|
|
|
- }).MergeTable();
|
|
|
-
|
|
|
- var returnList = await dicList.LeftJoin(hotListAndOrder, (pp, dd) => pp.DicDataValue == dd.AcceptTypeCode)
|
|
|
- .GroupBy((pp, dd) => new
|
|
|
- {
|
|
|
- HotspotId = dd.HotspotId,
|
|
|
- HotspotName = dd.HotspotName,
|
|
|
- AcceptTypeCode = pp.DicDataValue,
|
|
|
- AcceptType = pp.DicDataName,
|
|
|
- })
|
|
|
- .OrderBy((pp, dd) => dd.HotspotId)
|
|
|
- .Select((pp, dd) => new
|
|
|
- {
|
|
|
- HotspotId = dd.HotspotId,
|
|
|
- HotspotName = dd.HotspotName,
|
|
|
- AcceptTypeCode = pp.DicDataValue,
|
|
|
- AcceptType = pp.DicDataName,
|
|
|
- Count = SqlFunc.AggregateSum(dd.Count)
|
|
|
- }).ToPivotTableAsync(q => q.AcceptType, q => new { q.HotspotName }, q => q.Sum(x => x.Count));
|
|
|
- DataColumn totalColumn = new DataColumn("有效受理量", typeof(int));
|
|
|
- returnList.Columns.Add(totalColumn);
|
|
|
-
|
|
|
- returnList.Columns["HotspotName"].ColumnName = "省一级热点名称";
|
|
|
+ {
|
|
|
+
|
|
|
+ var dicList = _systemDicDataRepository.Queryable().Where(x => x.DicTypeCode == "AcceptType").OrderBy(x => x.Sort).MergeTable();
|
|
|
+ var IsCenter = _sessionContext.OrgIsCenter;
|
|
|
+
|
|
|
+ var hotspotList = _hotspotRepository.Queryable().Where(x => SqlFunc.Length(x.Id) == 2)
|
|
|
+ .Select(x => new
|
|
|
+ {
|
|
|
+ HotspotId = x.Id,
|
|
|
+ HotspotName = x.HotSpotFullName,
|
|
|
+ }).MergeTable();
|
|
|
+
|
|
|
+ var orderList = _orderRepository.Queryable()
|
|
|
+ .WhereIF(dto.StartTime.HasValue, x => x.CreationTime >= dto.StartTime)
|
|
|
+ .WhereIF(dto.EndTime.HasValue, x => x.CreationTime <= dto.EndTime)
|
|
|
+ .WhereIF(IsCenter == false, x => x.ActualHandleOrgCode.StartsWith(_sessionContext.RequiredOrgId))
|
|
|
+ .Select(x => new
|
|
|
+ {
|
|
|
+ HotspotId = x.HotspotId.Substring(0, 2),
|
|
|
+ AcceptTypeCode = x.AcceptTypeCode,
|
|
|
+ }).MergeTable();
|
|
|
+
|
|
|
+ var hotListAndOrder = hotspotList.LeftJoin(orderList, (it, o) => it.HotspotId == o.HotspotId)
|
|
|
+ .GroupBy((it, o) => new
|
|
|
+ {
|
|
|
+ it.HotspotId,
|
|
|
+ it.HotspotName,
|
|
|
+ AcceptTypeCode = o.AcceptTypeCode,
|
|
|
+ })
|
|
|
+ .OrderBy((it, o) => it.HotspotId)
|
|
|
+ .Select((it, o) => new
|
|
|
+ {
|
|
|
+ HotspotId = it.HotspotId,
|
|
|
+ HotspotName = it.HotspotName,
|
|
|
+ AcceptTypeCode = o.AcceptTypeCode,
|
|
|
+ Count = SqlFunc.AggregateCount(it.HotspotId)
|
|
|
+ }).MergeTable();
|
|
|
+
|
|
|
+ var returnList = await dicList.LeftJoin(hotListAndOrder, (pp, dd) => pp.DicDataValue == dd.AcceptTypeCode)
|
|
|
+ .GroupBy((pp, dd) => new
|
|
|
+ {
|
|
|
+ HotspotId = dd.HotspotId,
|
|
|
+ HotspotName = dd.HotspotName,
|
|
|
+ AcceptTypeCode = pp.DicDataValue,
|
|
|
+ AcceptType = pp.DicDataName,
|
|
|
+ })
|
|
|
+ .OrderBy((pp, dd) => dd.HotspotId)
|
|
|
+ .Select((pp, dd) => new
|
|
|
+ {
|
|
|
+ HotspotId = dd.HotspotId,
|
|
|
+ HotspotName = dd.HotspotName,
|
|
|
+ AcceptTypeCode = pp.DicDataValue,
|
|
|
+ AcceptType = pp.DicDataName,
|
|
|
+ Count = SqlFunc.AggregateSum(dd.Count)
|
|
|
+ }).ToPivotTableAsync(q => q.AcceptType, q => new { q.HotspotName }, q => q.Sum(x => x.Count));
|
|
|
+ DataColumn totalColumn = new DataColumn("有效受理量", typeof(int));
|
|
|
+ returnList.Columns.Add(totalColumn);
|
|
|
+
|
|
|
+ returnList.Columns["HotspotName"].ColumnName = "省一级热点名称";
|
|
|
var titleList = await _systemDicDataRepository.Queryable().Where(x => x.DicTypeCode == "AcceptType").OrderBy(x => x.Sort).ToListAsync();
|
|
|
- for (int z = 0; z < returnList.Rows.Count; z++)
|
|
|
- {
|
|
|
- if (string.IsNullOrEmpty(returnList.Rows[z]["省一级热点名称"].ToString()))
|
|
|
- {
|
|
|
- returnList.Rows.Remove(returnList.Rows[z]);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- int num = 0;
|
|
|
- var colTotal = returnList.Columns.Count - 1;
|
|
|
- for (int i = 1; i < colTotal; i++)
|
|
|
- {
|
|
|
- num += int.Parse(returnList.Rows[z][i].ToString());
|
|
|
- }
|
|
|
- returnList.Rows[z]["有效受理量"] = num;
|
|
|
- }
|
|
|
- }
|
|
|
- returnList.Columns["有效受理量"].SetOrdinal(1);
|
|
|
- DataTable list = new DataTable();
|
|
|
- if (returnList.Rows.Count > 0)
|
|
|
- list = returnList.Select("", "有效受理量 DESC").Take(10).CopyToDataTable();
|
|
|
- if (isExport)
|
|
|
- {
|
|
|
- return (new List<SystemDicData>(), null, list);
|
|
|
- }
|
|
|
- var listDy = ToDynamicList(list);
|
|
|
- return (titleList, listDy, list);
|
|
|
- }
|
|
|
-
|
|
|
- public static List<dynamic> ToDynamicList(DataTable dataTable)
|
|
|
- {
|
|
|
- var list = new List<dynamic>();
|
|
|
-
|
|
|
- foreach (DataRow row in dataTable.Rows)
|
|
|
- {
|
|
|
- dynamic expando = new ExpandoObject();
|
|
|
- var expandoDic = (IDictionary<string, object>)expando;
|
|
|
-
|
|
|
- foreach (DataColumn column in dataTable.Columns)
|
|
|
- {
|
|
|
- expandoDic.Add(column.ColumnName, row[column]);
|
|
|
- }
|
|
|
-
|
|
|
- list.Add(expando);
|
|
|
- }
|
|
|
-
|
|
|
- return list;
|
|
|
- }
|
|
|
- #endregion
|
|
|
+ for (int z = 0; z < returnList.Rows.Count; z++)
|
|
|
+ {
|
|
|
+ if (string.IsNullOrEmpty(returnList.Rows[z]["省一级热点名称"].ToString()))
|
|
|
+ {
|
|
|
+ returnList.Rows.Remove(returnList.Rows[z]);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ int num = 0;
|
|
|
+ var colTotal = returnList.Columns.Count - 1;
|
|
|
+ for (int i = 1; i < colTotal; i++)
|
|
|
+ {
|
|
|
+ num += int.Parse(returnList.Rows[z][i].ToString());
|
|
|
+ }
|
|
|
+ returnList.Rows[z]["有效受理量"] = num;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ returnList.Columns["有效受理量"].SetOrdinal(1);
|
|
|
+ DataTable list = new DataTable();
|
|
|
+ if (returnList.Rows.Count > 0)
|
|
|
+ list = returnList.Select("", "有效受理量 DESC").Take(10).CopyToDataTable();
|
|
|
+ if (isExport)
|
|
|
+ {
|
|
|
+ return (new List<SystemDicData>(), null, list);
|
|
|
+ }
|
|
|
+ var listDy = ToDynamicList(list);
|
|
|
+ return (titleList, listDy, list);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static List<dynamic> ToDynamicList(DataTable dataTable)
|
|
|
+ {
|
|
|
+ var list = new List<dynamic>();
|
|
|
+
|
|
|
+ foreach (DataRow row in dataTable.Rows)
|
|
|
+ {
|
|
|
+ dynamic expando = new ExpandoObject();
|
|
|
+ var expandoDic = (IDictionary<string, object>)expando;
|
|
|
+
|
|
|
+ foreach (DataColumn column in dataTable.Columns)
|
|
|
+ {
|
|
|
+ expandoDic.Add(column.ColumnName, row[column]);
|
|
|
+ }
|
|
|
+
|
|
|
+ list.Add(expando);
|
|
|
+ }
|
|
|
+
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
}
|