|
@@ -231,71 +231,70 @@ namespace Hotline.Application.Orders
|
|
|
}
|
|
|
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 获取申请列表
|
|
|
- /// </summary>
|
|
|
- /// <returns></returns>
|
|
|
- public ISugarQueryable<OrderVisitDetail> ApplyQuery(MayScreenListDto dto, CancellationToken cancellationToken)
|
|
|
- {
|
|
|
- //dto.CreationTimeEnd = DateTime.Now;
|
|
|
- ////dto.CreationTimeStart = DateTime.Now;
|
|
|
- //dto.CreationTimeStart = _timeLimitDomainService.CalcWorkTimeReduce(DateTime.Now, 5);
|
|
|
- var isAdmin = _orderDomainService.IsCheckAdmin();
|
|
|
- var query = _orderVisitedDetailRepository.Queryable(false, true)
|
|
|
- .Includes(x => x.OrderVisit)
|
|
|
- .Includes(x => x.OrderVisit, y => y.Order)
|
|
|
- .Includes(x => x.OrderVisit, y => y.Employee)
|
|
|
- .Includes(x => x.SecondaryHandling)
|
|
|
- .Where(x => x.OrderVisit.Order.IsProvince == false)
|
|
|
- .LeftJoin<OrderScreen>((x, s) => x.Id == s.VisitDetailId && s.Status < EScreenStatus.End && s.IsDeleted == false)
|
|
|
- //.Where(x => SqlFunc.Subqueryable<OrderScreen>().Where(os => x.Id == os.VisitDetailId && os.Status < EScreenStatus.End && os.IsDeleted == false).Any() || SqlFunc.Subqueryable<OrderScreen>().Where(os => x.Id == os.VisitDetailId && os.IsDeleted == false).NotAny())
|
|
|
- //.Where((x, s) => s.Id == null && (x.SecondaryHandling.State == ESecondaryHandlingState.NotApply || x.SecondaryHandling.Id == null))
|
|
|
- .Where(x => SqlFunc.Subqueryable<OrderSecondaryHandling>().Where(osh => osh.VisitDetailId == x.Id && osh.State == ESecondaryHandlingState.NotApply).NotAny())
|
|
|
- //.Where(x => x.OrderVisit.VisitTime < dto.CreationTimeEnd && x.OrderVisit.VisitTime > dto.CreationTimeStart)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.No), x => x.OrderVisit.Order!.No!.Contains(dto.No!))
|
|
|
- .WhereIF(dto.IsProvince.HasValue, x => x.OrderVisit.Order!.IsProvince == dto.IsProvince)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.Title), x => x.OrderVisit.Order!.Title!.Contains(dto.Title!))
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.SourceChannel), x => x.OrderVisit.Order!.SourceChannelCode! == dto.SourceChannel!)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), x => x.OrderVisit.Order!.AcceptTypeCode! == dto.AcceptType!)
|
|
|
- .WhereIF(dto.CounterSignType.HasValue, x => x.OrderVisit.Order!.CounterSignType == dto.CounterSignType)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.OrgLevelOneName), x => x.OrderVisit.Order!.OrgLevelOneName!.Contains(dto.OrgLevelOneName!))
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.CurrentHandleOrgName), x => x.OrderVisit.Order!.CurrentHandleOrgName!.Contains(dto.CurrentHandleOrgName!))
|
|
|
- .WhereIF(dto.CurrentHandleTime.HasValue && dto.EndCurrentHandleTime.HasValue, x => x.OrderVisit.Order!.ActualHandleTime >= dto.CurrentHandleTime && x.OrderVisit.Order!.ActualHandleTime <= dto.EndCurrentHandleTime)
|
|
|
- .WhereIF(dto.FiledTime.HasValue && dto.EndFiledTime.HasValue, x => x.OrderVisit.Order!.FiledTime >= dto.FiledTime && x.OrderVisit.Order!.FiledTime <= dto.EndFiledTime)
|
|
|
- .WhereIF(dto.CreationTime.HasValue && dto.EndCreationTime.HasValue, x => x.OrderVisit.Order!.CreationTime >= dto.CreationTime && x.OrderVisit.Order!.CreationTime <= dto.EndCreationTime)
|
|
|
- .WhereIF(dto.VisitTime.HasValue && dto.EndVisitTime.HasValue, x => x.OrderVisit.VisitTime >= dto.VisitTime && x.OrderVisit.VisitTime <= dto.EndVisitTime)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.VisitOrgName), x => x.VisitOrgName!.Contains(dto.VisitOrgName!))
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.OrgProcessingResults), x => SqlFunc.JsonField(x.OrgProcessingResults, "Key") == dto.OrgProcessingResults)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.OrgHandledAttitude), x => SqlFunc.JsonListObjectAny(x.OrgHandledAttitude, "Key", dto.OrgHandledAttitude))
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.OrgNoSatisfiedReason), x => SqlFunc.JsonField(x.OrgNoSatisfiedReason, "Key") == dto.OrgNoSatisfiedReason)
|
|
|
- //.Where(x => SqlFunc.Subqueryable<OrderVisit>().Where(ov => ov.Id == x.VisitId && ov.VisitState == EVisitState.Visited && ov.IsCanHandle).Any())
|
|
|
- .Where((x, s) => x.OrderVisit.VisitState == EVisitState.Visited && x.OrderVisit.IsCanHandle)
|
|
|
- .WhereIF(!isAdmin, (x, s) => (x.OrderVisit.Order.CounterSignType == ECounterSignType.Department || x.OrderVisit.Order.CounterSignType == null) && x.VisitOrgCode.StartsWith(_sessionContext.OrgId))
|
|
|
- ;
|
|
|
- if (_sessionContext.OrgId != null && !_sessionContext.OrgIsCenter)
|
|
|
- {
|
|
|
- query.WhereIF(!string.IsNullOrEmpty(dto.Keyword),
|
|
|
- (x, s) => x.OrderVisit.Order.Title.Contains(dto.Keyword!) ||
|
|
|
- x.OrderVisit.Order.No.Contains(dto.Keyword!))
|
|
|
- .Where((x, s) => x.VisitTarget == EVisitTarget.Org && x.VisitOrgCode.StartsWith(_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, s) => x.OrderVisit.Order.Title.Contains(dto.Keyword!) ||
|
|
|
- x.OrderVisit.Order.No.Contains(dto.Keyword!))
|
|
|
- .Where((x, s) => 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"
|
|
|
- ));
|
|
|
- }
|
|
|
+ /// <summary>
|
|
|
+ /// 获取申请列表
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ public ISugarQueryable<OrderVisitDetail> ApplyQuery(MayScreenListDto dto, CancellationToken cancellationToken)
|
|
|
+ {
|
|
|
+ //dto.CreationTimeEnd = DateTime.Now;
|
|
|
+ ////dto.CreationTimeStart = DateTime.Now;
|
|
|
+ //dto.CreationTimeStart = _timeLimitDomainService.CalcWorkTimeReduce(DateTime.Now, 5);
|
|
|
+ var isAdmin = _orderDomainService.IsCheckAdmin();
|
|
|
+ var query = _orderVisitedDetailRepository.Queryable(false, true)
|
|
|
+ .Includes(x => x.OrderVisit)
|
|
|
+ .Includes(x => x.OrderVisit, y => y.Order)
|
|
|
+ .Includes(x => x.OrderVisit, y => y.Employee)
|
|
|
+ .Includes(x => x.SecondaryHandling)
|
|
|
+ .Where(x => x.OrderVisit.Order.IsProvince == false)
|
|
|
+ .LeftJoin<OrderScreen>((x, s) => x.Id == s.VisitDetailId && s.Status < EScreenStatus.End && s.IsDeleted == false)
|
|
|
+ //.Where((x, s) => s.Id == null && (x.SecondaryHandling.State == ESecondaryHandlingState.NotApply || x.SecondaryHandling.Id == null))
|
|
|
+ .Where(x=> SqlFunc.Subqueryable<OrderSecondaryHandling>().Where(osh => osh.VisitDetailId == x.Id && osh.State == ESecondaryHandlingState.NotApply).NotAny())
|
|
|
+ //.Where(x => x.OrderVisit.VisitTime < dto.CreationTimeEnd && x.OrderVisit.VisitTime > dto.CreationTimeStart)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.No), x => x.OrderVisit.Order!.No!.Contains(dto.No!))
|
|
|
+ .WhereIF(dto.IsProvince.HasValue, x => x.OrderVisit.Order!.IsProvince == dto.IsProvince)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Title), x => x.OrderVisit.Order!.Title!.Contains(dto.Title!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.SourceChannel), x => x.OrderVisit.Order!.SourceChannelCode! == dto.SourceChannel!)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), x => x.OrderVisit.Order!.AcceptTypeCode! == dto.AcceptType!)
|
|
|
+ .WhereIF(dto.CounterSignType.HasValue, x => x.OrderVisit.Order!.CounterSignType == dto.CounterSignType)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.OrgLevelOneName), x => x.OrderVisit.Order!.OrgLevelOneName!.Contains(dto.OrgLevelOneName!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.CurrentHandleOrgName), x => x.OrderVisit.Order!.CurrentHandleOrgName!.Contains(dto.CurrentHandleOrgName!))
|
|
|
+ .WhereIF(dto.CurrentHandleTime.HasValue && dto.EndCurrentHandleTime.HasValue, x => x.OrderVisit.Order!.ActualHandleTime >= dto.CurrentHandleTime && x.OrderVisit.Order!.ActualHandleTime <= dto.EndCurrentHandleTime)
|
|
|
+ .WhereIF(dto.FiledTime.HasValue && dto.EndFiledTime.HasValue, x => x.OrderVisit.Order!.FiledTime >= dto.FiledTime && x.OrderVisit.Order!.FiledTime <= dto.EndFiledTime)
|
|
|
+ .WhereIF(dto.CreationTime.HasValue && dto.EndCreationTime.HasValue, x => x.OrderVisit.Order!.CreationTime >= dto.CreationTime && x.OrderVisit.Order!.CreationTime <= dto.EndCreationTime)
|
|
|
+ .WhereIF(dto.VisitTime.HasValue && dto.EndVisitTime.HasValue, x => x.OrderVisit.VisitTime >= dto.VisitTime && x.OrderVisit.VisitTime <= dto.EndVisitTime)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.VisitOrgName), x => x.VisitOrgName!.Contains(dto.VisitOrgName!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.OrgProcessingResults), x => SqlFunc.JsonField(x.OrgProcessingResults, "Key") == dto.OrgProcessingResults)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.OrgHandledAttitude), x => SqlFunc.JsonListObjectAny(x.OrgHandledAttitude, "Key", dto.OrgHandledAttitude))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.OrgNoSatisfiedReason), x => SqlFunc.JsonField(x.OrgNoSatisfiedReason, "Key") == dto.OrgNoSatisfiedReason)
|
|
|
+ //.Where(x => SqlFunc.Subqueryable<OrderVisit>().Where(ov => ov.Id == x.VisitId && ov.VisitState == EVisitState.Visited && ov.IsCanHandle).Any())
|
|
|
+ .Where((x, s) => x.OrderVisit.VisitState == EVisitState.Visited && x.OrderVisit.IsCanHandle)
|
|
|
+ .WhereIF(!isAdmin, (x, s) => (x.OrderVisit.Order.CounterSignType == ECounterSignType.Department || x.OrderVisit.Order.CounterSignType == null) && x.VisitOrgCode.StartsWith(_sessionContext.OrgId))
|
|
|
+ ;
|
|
|
+ if (_sessionContext.OrgId != null && !_sessionContext.OrgIsCenter)
|
|
|
+ {
|
|
|
+ query.WhereIF(!string.IsNullOrEmpty(dto.Keyword),
|
|
|
+ (x, s) => x.OrderVisit.Order.Title.Contains(dto.Keyword!) ||
|
|
|
+ x.OrderVisit.Order.No.Contains(dto.Keyword!))
|
|
|
+ .Where((x, s) => x.VisitTarget == EVisitTarget.Org && x.VisitOrgCode.StartsWith(_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, s) => x.OrderVisit.Order.Title.Contains(dto.Keyword!) ||
|
|
|
+ x.OrderVisit.Order.No.Contains(dto.Keyword!))
|
|
|
+ .Where((x, s) => 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"
|
|
|
+ ));
|
|
|
+ }
|
|
|
|
|
|
return query.OrderByDescending((x, s) => x.CreationTime);
|
|
|
}
|