|
@@ -1049,6 +1049,94 @@ namespace Hotline.Repository.SqlSugar.Orders
|
|
{
|
|
{
|
|
return Db.UnionAll(t1, t2).Select(it => new SelectOrderId { Id = it.Id }).MergeTable();
|
|
return Db.UnionAll(t1, t2).Select(it => new SelectOrderId { Id = it.Id }).MergeTable();
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 数据清单
|
|
|
|
+ /// </summary>
|
|
|
|
+ /// <param name="dto"></param>
|
|
|
|
+ /// <returns></returns>
|
|
|
|
+ public ISugarQueryable<OrderDataInventoryRep> OrderDataInventory(OrderDataInventoryReq dto)
|
|
|
|
+ {
|
|
|
|
+ dto.EndTime = dto.EndTime.AddDays(1).AddSeconds(-1);
|
|
|
|
+
|
|
|
|
+ var result = Db.Queryable<Order>()
|
|
|
|
+ //.Includes(x => x.OrderScreens.OrderByDescending(x => x.CreationTime).FirstOrDefault(),it=>it.Status)
|
|
|
|
+ //.Includes(x => x.OrderVisits.Where(x => x.VisitState == EVisitState.Visited).FirstOrDefault(),it=>it.OrderVisitDetails)
|
|
|
|
+ .Where(x => x.CreationTime >= dto.StartTime) //开始时间
|
|
|
|
+ .Where(x => x.CreationTime <= dto.EndTime)//开始时间
|
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.No), x => x.No == dto.No) //工单编号
|
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Title), x => x.Title.Contains(dto.Title)) //工单标题
|
|
|
|
+ .WhereIF(dto.OrderStatus.HasValue, x => x.Status == dto.OrderStatus) //工单状态
|
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Channel), x => x.SourceChannelCode == dto.Channel) //来源渠道
|
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.TransferPhone), x => x.TransferPhone == dto.TransferPhone!) //转接号码
|
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.ActualHandleStepName), x => x.ActualHandleStepName.Contains(dto.ActualHandleStepName)) //当前节点
|
|
|
|
+ .WhereIF(dto.ScreenStatus.HasValue, x => x.OrderScreens.Any(x => x.Status == dto.ScreenStatus)) //甄别状态
|
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.ProvinceNo), x => x.ProvinceNo == dto.ProvinceNo)//省工单编号
|
|
|
|
+ .WhereIF(dto.ExpiredTimeStart.HasValue, x => x.ExpiredTime >= dto.ExpiredTimeStart) //期满时间开始
|
|
|
|
+ .WhereIF(dto.ExpiredTimeEnd.HasValue, x => x.ExpiredTime <= dto.ExpiredTimeEnd.Value.AddDays(1).AddSeconds(-1)) //期满时间结束
|
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.OrgLevelOneName), x => x.OrgLevelOneName.Contains(dto.OrgLevelOneName))//一级部门名称
|
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.OrgLevelTwoName), x => x.OrgLevelTwoName.Contains(dto.OrgLevelTwoName)) //二级部门名称
|
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName), x => x.ActualHandleOrgName.Contains(dto.ActualHandleOrgName)) //接办部门
|
|
|
|
+ .WhereIF(dto.FiledTimeStart.HasValue, x => x.FiledTime >= dto.FiledTimeStart) //办结时间开始
|
|
|
|
+ .WhereIF(dto.FiledTimeEnd.HasValue, x => x.FiledTime <= dto.FiledTimeEnd.Value.AddDays(1).AddSeconds(-1)) //办结时间结束
|
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), x => x.AcceptTypeCode == dto.AcceptType)//受理类型
|
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Hotspot), x => x.HotspotSpliceName != null && x.HotspotSpliceName.Contains(dto.Hotspot)) //热点分类
|
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.AreaCode), x => x.AreaCode == dto.AreaCode)//区域
|
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.NameOrNo), x => x.AcceptorName == dto.NameOrNo! || x.AcceptorStaffNo == dto.NameOrNo!) //受理人/坐席
|
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.FromName), x => x.FromName.Contains(dto.FromName)) //来电人姓名
|
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.FromPhone), x => x.FromPhone == dto.FromPhone) //来电号码
|
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.PhoneNo), x => x.Contact == dto.PhoneNo!) //联系电话
|
|
|
|
+ .WhereIF(dto.IdentityType.HasValue, x => x.IdentityType == dto.IdentityType) //来电主体
|
|
|
|
+ .WhereIF(dto.FromGender.HasValue, x => x.FromGender == dto.FromGender) //来电性别
|
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.PushTypeCode), x => x.PushTypeCode == dto.PushTypeCode)//推送分类
|
|
|
|
+ .Select(x => new OrderDataInventoryRep()
|
|
|
|
+ {
|
|
|
|
+ OrderStatus = x.Status,
|
|
|
|
+ ActualHandleTime = x.ActualHandleTime,
|
|
|
|
+ NearlyExpiredTime = x.NearlyExpiredTime,
|
|
|
|
+ SourceChannel = x.SourceChannel,
|
|
|
|
+ TransferPhone = x.TransferPhone,
|
|
|
|
+ ActualHandleStepName = x.ActualHandleStepName,
|
|
|
|
+ ReTransactNum = x.ReTransactNum,
|
|
|
|
+ //TODO 甄别状态
|
|
|
|
+ OrderScreenStatus = SqlFunc.Subqueryable<OrderScreen>().Where(q=>q.OrderId == x.Id).OrderByDesc(q=>q.CreationTime).Select(q=>q.Status), //x.OrderScreens.FirstOrDefault().Status,
|
|
|
|
+ No = x.No,
|
|
|
|
+ ProvinceNo = x.ProvinceNo,
|
|
|
|
+ CreationTime = x.CreationTime,
|
|
|
|
+ Title = x.Title,
|
|
|
|
+ ExpiredTime = x.ExpiredTime,
|
|
|
|
+ OrgLevelOneName = x.OrgLevelOneName,
|
|
|
|
+ OrgLevelTwoName = x.OrgLevelTwoName,
|
|
|
|
+ ActualHandleOrgName = x.ActualHandleOrgName,
|
|
|
|
+ FiledTime = x.FiledTime,
|
|
|
|
+ AcceptType = x.AcceptType,
|
|
|
|
+ HotspotName = x.HotspotName,
|
|
|
|
+ HotspotSpliceName = x.HotspotSpliceName,
|
|
|
|
+ AreaName = SqlFunc.IIF(string.IsNullOrEmpty(x.Town) == false, x.Town, SqlFunc.IIF(string.IsNullOrEmpty(x.County) == false, x.County, x.City)),
|
|
|
|
+ FullAreaName = x.FullAddress,
|
|
|
|
+ AcceptorName = x.AcceptorName,
|
|
|
|
+ FromName = x.FromName,
|
|
|
|
+ Contact = x.Contact,
|
|
|
|
+ FromPhone = x.FromPhone,
|
|
|
|
+ Address = x.Street,
|
|
|
|
+ IdentityType = x.IdentityType,
|
|
|
|
+ FromGender = x.FromGender,
|
|
|
|
+ //坐席评价
|
|
|
|
+ SeatEvaluate = SqlFunc.Subqueryable<OrderVisitDetail>()
|
|
|
|
+ .Where(w => w.VisitId == SqlFunc.Subqueryable<OrderVisit>().Where(q => q.OrderId == x.Id && q.VisitState == EVisitState.Visited).Select(q => q.Id) && w.VisitTarget == EVisitTarget.Seat)
|
|
|
|
+ .Select(w =>w.SeatEvaluate),
|
|
|
|
+ //TODO 办结结果
|
|
|
|
+ OrgProcessingResults = SqlFunc.Subqueryable<OrderVisitDetail>()
|
|
|
|
+ .Where(w => w.VisitId == SqlFunc.Subqueryable<OrderVisit>().Where(q => q.OrderId == x.Id && q.VisitState == EVisitState.Visited).Select(q => q.Id) && w.VisitTarget == EVisitTarget.Org)
|
|
|
|
+ .Select(w =>SqlFunc.JsonField(w.OrgProcessingResults,"Value")),
|
|
|
|
+ PushType = x.PushType,
|
|
|
|
+ Content = x.Content,
|
|
|
|
+ ActualOpinion = x.ActualOpinion,
|
|
|
|
+ FileOpinion = x.FileOpinion,
|
|
|
|
+ }).OrderByDescending(x => x.CreationTime);
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
public class OrderScreenRepository : BaseRepositoryWorkflow<OrderScreen>, IOrderScreenRepository, IScopeDependency
|
|
public class OrderScreenRepository : BaseRepositoryWorkflow<OrderScreen>, IOrderScreenRepository, IScopeDependency
|