|
@@ -93,9 +93,10 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
private readonly IRepository<OrderScreen> _orderScreenRepository;
|
|
|
private readonly IRepository<OrderSendBackAudit> _orderSendBackAuditRepository;
|
|
|
private readonly ICalcExpireTime _expireTime;
|
|
|
+ private readonly IOptions<CityBaseConfiguration> _cityBaseConfiguration;
|
|
|
|
|
|
|
|
|
- public OrderApplication(
|
|
|
+ public OrderApplication(
|
|
|
IOrderDomainService orderDomainService,
|
|
|
IOrderRepository orderRepository,
|
|
|
IWorkflowDomainService workflowDomainService,
|
|
@@ -124,7 +125,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
ICalcExpireTime expireTime,
|
|
|
IMediator mediator,
|
|
|
IRepository<OrderVisitDetail> orderVisitedDetailRepository,
|
|
|
- IOptionsSnapshot<AppConfiguration> appOptions)
|
|
|
+ IOptionsSnapshot<AppConfiguration> appOptions,
|
|
|
+ IOptions<CityBaseConfiguration> cityBaseConfiguration)
|
|
|
{
|
|
|
_orderDomainService = orderDomainService;
|
|
|
_workflowDomainService = workflowDomainService;
|
|
@@ -155,7 +157,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
_mediator = mediator;
|
|
|
_orderVisitedDetailRepository = orderVisitedDetailRepository;
|
|
|
_appOptions = appOptions;
|
|
|
- }
|
|
|
+ _cityBaseConfiguration = cityBaseConfiguration;
|
|
|
+ }
|
|
|
|
|
|
/// <summary>
|
|
|
/// 更新工单办理期满时间(延期调用,其他不调用)
|
|
@@ -246,14 +249,14 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
order.ProcessType is EProcessType.Zhiban)
|
|
|
: 0;
|
|
|
var creationTimeHandleDurationWorkday = order.ActualHandleTime.HasValue
|
|
|
- ?
|
|
|
+ ?
|
|
|
// _timeLimitDomainService.CalcWorkTime(
|
|
|
await _expireTime.CalcWorkTime(
|
|
|
order.CreationTime, now,
|
|
|
order.ProcessType is EProcessType.Zhiban)
|
|
|
: 0;
|
|
|
var centerToOrgHandleDurationWorkday = order.ActualHandleTime.HasValue && order.CenterToOrgTime.HasValue
|
|
|
- ?
|
|
|
+ ?
|
|
|
// _timeLimitDomainService.CalcWorkTime(
|
|
|
await _expireTime.CalcWorkTime(
|
|
|
order.CenterToOrgTime.Value, now,
|
|
@@ -282,7 +285,13 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
var IsCenter = _sessionContext.OrgIsCenter;
|
|
|
|
|
|
return _orderRepository.Queryable(canView: !IsCenter).Includes(d => d.OrderDelays)
|
|
|
- .WhereIF(dto.IsProvince.HasValue, d => d.IsProvince == dto.IsProvince)
|
|
|
+ .Where(d => SqlFunc.Subqueryable<WorkflowStep>()
|
|
|
+ .Where(step => step.ExternalId == d.Id &&
|
|
|
+ ((step.FlowAssignType == EFlowAssignType.User && !string.IsNullOrEmpty(step.HandlerId) && step.HandlerId == _sessionContext.RequiredUserId) ||
|
|
|
+ (step.FlowAssignType == EFlowAssignType.Org && !string.IsNullOrEmpty(step.HandlerOrgId) && step.HandlerOrgId == _sessionContext.RequiredOrgId) ||
|
|
|
+ (step.FlowAssignType == EFlowAssignType.Role && !string.IsNullOrEmpty(step.RoleId) && _sessionContext.Roles.Contains(step.RoleId))))
|
|
|
+ .Any())
|
|
|
+ .WhereIF(dto.IsProvince.HasValue, d => d.IsProvince == dto.IsProvince)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No.Contains(dto.No!))
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Title), d => d.Title.Contains(dto.Title!))
|
|
|
.WhereIF(dto.Delay.HasValue && dto.Delay == 1, d => d.OrderDelays.Any() == true)
|
|
@@ -384,7 +393,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 })
|
|
@@ -458,6 +467,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
case ESource.ZHYB:
|
|
|
case ESource.ZZPT:
|
|
|
case ESource.WLLZ:
|
|
|
+ case ESource.YBS:
|
|
|
return ReceiveOrderFromOtherPlatformAsync(dto, dto.Files, current, cancellationToken);
|
|
|
case ESource.Hotline:
|
|
|
case ESource.HotlineImport:
|
|
@@ -491,8 +501,6 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
/// <exception cref="UserFriendlyException"></exception>
|
|
|
public async Task<(int, IList<PublishedOrderStatisticsDto>)> QueryPublishedOrderAsync(QueryOrderPublishStatisticsDto dto, bool isFull)
|
|
|
{
|
|
|
- dto.EndTime = dto.EndTime.AddDays(1).AddSeconds(-1);
|
|
|
-
|
|
|
var query = _orderRepository.Queryable()
|
|
|
.Includes(order => order.OrderPublish)
|
|
|
.LeftJoin<User>((order, user) => order.WaitForPublisherId == user.Id)
|
|
@@ -504,8 +512,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
Id = order.WaitForPublisherId,
|
|
|
Name = user.Name,
|
|
|
//TotalCount = SqlFunc.AggregateCount(order.Id),
|
|
|
- WaitCount = SqlFunc.AggregateSum(SqlFunc.IIF(order.Status == EOrderStatus.Filed, 1, 0)),
|
|
|
- PublicCount = SqlFunc.AggregateSum(SqlFunc.IIF(order.OrderPublish.PublishState == true , 1, 0)),
|
|
|
+ WaitCount = SqlFunc.AggregateSum(SqlFunc.IIF(order.Status == EOrderStatus.Filed, 1, 0)),
|
|
|
+ PublicCount = SqlFunc.AggregateSum(SqlFunc.IIF(order.OrderPublish.PublishState == true, 1, 0)),
|
|
|
PrivateCount = SqlFunc.AggregateSum(SqlFunc.IIF(order.OrderPublish.PublishState == false, 1, 0))
|
|
|
});
|
|
|
|
|
@@ -531,7 +539,6 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
/// <exception cref="UserFriendlyException"></exception>
|
|
|
public async Task<(int, IList<PublishedOrderStatisticsDto>)> QueryPublishedOrderDepartmentAsync(QueryOrderPublishStatisticsAllDto dto, bool isFull)
|
|
|
{
|
|
|
- dto.EndTime = dto.EndTime.AddDays(1).AddSeconds(-1);
|
|
|
|
|
|
var total = 0;
|
|
|
var items = new List<PublishedOrderStatisticsDto>();
|
|
@@ -569,7 +576,6 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
/// <exception cref="NotImplementedException"></exception>
|
|
|
public async Task<IList<OrderVisitSourceChannelDto>> QueryOrderVisitSourceChannelAsync(QueryOrderVisitSourceChannelDto dto)
|
|
|
{
|
|
|
- dto.EndTime = dto.EndTime.AddDays(1).AddSeconds(-1);
|
|
|
var result = await _orderVisitRepository.Queryable()
|
|
|
.LeftJoin<Order>((visit, order) => order.Id == visit.OrderId)
|
|
|
.Where((visit, order) => visit.VisitTime >= dto.StartTime && visit.VisitTime <= dto.EndTime)
|
|
@@ -609,7 +615,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);
|
|
@@ -817,32 +823,34 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
|
|
|
return query
|
|
|
.Includes(x => x.OrderScreens)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.StartsWith(dto.Keyword!)) //标题
|
|
|
+ .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.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(dto.AcceptTypes.Any(), d => dto.AcceptTypes.Contains(d.AcceptTypeCode)) //受理类型
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Channel), d => d.SourceChannelCode == dto.Channel)
|
|
|
//.WhereIF(dto.Channels.Any(), d => dto.Channels.Contains(d.SourceChannelCode)) //来源渠道
|
|
|
//.WhereIF(dto.HotspotIds.Any(), d => dto.HotspotIds.Contains(d.HotspotId)) //热点类型
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Hotspot), d => d.HotspotSpliceName != null && d.HotspotSpliceName.Contains(dto.Hotspot))
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.TransferPhone), d => d.TransferPhone == dto.TransferPhone!) //转接号码
|
|
|
- //.WhereIF(dto.OrgCodes.Any(), d => d.Workflow.Assigns.Any(s => dto.OrgCodes.Contains(s.OrgCode)))
|
|
|
- //.WhereIF(dto.OrgCodes.Any(), d => dto.OrgCodes.Contains(d.ActualHandleOrgCode)) //接办部门
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.OrgId), d => d.CurrentHandleOrgId == dto.OrgId)//接办部门
|
|
|
+ //.WhereIF(dto.OrgCodes.Any(), d => d.Workflow.Assigns.Any(s => dto.OrgCodes.Contains(s.OrgCode)))
|
|
|
+ //.WhereIF(dto.OrgCodes.Any(), d => dto.OrgCodes.Contains(d.ActualHandleOrgCode)) //接办部门
|
|
|
+ //.WhereIF(!string.IsNullOrEmpty(dto.OrgId), d => d.CurrentHandleOrgId == dto.OrgId)//接办部门
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.OrgLevelOneName),d=>d.OrgLevelOneName.Contains(dto.OrgLevelOneName)) //一级部门
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName),d=>d.ActualHandleOrgName.Contains(dto.ActualHandleOrgName)) //接办部门(综合查询模糊)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.NameOrNo), d => d.AcceptorName == dto.NameOrNo! || d.AcceptorStaffNo == dto.NameOrNo!) //受理人/坐席
|
|
|
.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(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), 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.ExpiredTimeStart.HasValue, d => d.ExpiredTime >= dto.ExpiredTimeStart) //超期时间开始
|
|
|
.WhereIF(dto.ExpiredTimeEnd.HasValue, d => d.ExpiredTime <= dto.ExpiredTimeEnd) //超期时间结束
|
|
|
- //.WhereIF(dto.Statuses.Any(), d => dto.Statuses.Contains(d.Status)) //工单状态
|
|
|
+ //.WhereIF(dto.Statuses.Any(), d => dto.Statuses.Contains(d.Status)) //工单状态
|
|
|
.WhereIF(dto.Status.HasValue, d => d.Status == dto.Status)//工单状态
|
|
|
- //.WhereIF(dto.Statuses.Any(d => d == EOrderStatus.SpecialToUnAccept), d => d.Status <= EOrderStatus.SpecialToUnAccept)
|
|
|
+ //.WhereIF(dto.Statuses.Any(d => d == EOrderStatus.SpecialToUnAccept), d => d.Status <= EOrderStatus.SpecialToUnAccept)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.ActualHandlerName), d => d.ActualHandlerName == dto.ActualHandlerName) //接办人
|
|
|
.WhereIF(dto.IsScreen == true, d => d.OrderScreens.Any(x => x.Status != EScreenStatus.Refuse)) //有甄别
|
|
|
.WhereIF(dto.IsScreen == false, d => !d.OrderScreens.Any(x => x.Status != EScreenStatus.Refuse)) //无甄别
|
|
@@ -853,8 +861,10 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
.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(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))
|
|
@@ -876,8 +886,6 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
/// <returns></returns>
|
|
|
public ISugarQueryable<Order, WorkflowStep> QueryUnsignedOrders(QueryUnsignedOrdersRequest dto)
|
|
|
{
|
|
|
- if (dto.EndTime.HasValue)
|
|
|
- dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
var IsCenter = _sessionContext.OrgIsCenter;
|
|
|
return _orderRepository.Queryable()
|
|
|
.LeftJoin<WorkflowStep>((x, ws) => x.Id == ws.ExternalId)
|
|
@@ -1009,8 +1017,6 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
/// <returns></returns>
|
|
|
public ISugarQueryable<Order> QueryOrgDataListDetail(OrgDataListDetailRequest dto)
|
|
|
{
|
|
|
- dto.EndTime = dto.EndTime.AddDays(1).AddSeconds(-1);
|
|
|
-
|
|
|
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)
|
|
@@ -1050,7 +1056,6 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
/// <returns></returns>
|
|
|
public ISugarQueryable<Order> QueryOrgDataListDetail(OrgDataListAllDetailRequest dto)
|
|
|
{
|
|
|
- dto.EndTime = dto.EndTime.AddDays(1).AddSeconds(-1);
|
|
|
bool IsCenter = _sessionContext.OrgIsCenter;
|
|
|
|
|
|
var quer = _orderRepository.Queryable()
|
|
@@ -1089,7 +1094,6 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
/// <returns></returns>
|
|
|
public ISugarQueryable<OrderReTransactVo> OrderReTransact(QueryOrderReTransactRequest dto)
|
|
|
{
|
|
|
-
|
|
|
return _orderSpecialDetailRepository.Queryable()
|
|
|
.Includes(x => x.OrderSpecial)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.OrgName), x => x.OrgName.Contains(dto.OrgName!))
|
|
@@ -1116,7 +1120,6 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
{
|
|
|
if (!dto.StartTime.HasValue || !dto.EndTime.HasValue)
|
|
|
throw UserFriendlyException.SameMessage("请选择时间!");
|
|
|
- dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
return _orderSpecialDetailRepository.Queryable()
|
|
|
.Includes(x => x.OrderSpecial, s => s.Order)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.OrgName), x => x.OrgName.Contains(dto.OrgName!))
|
|
@@ -1132,8 +1135,6 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
/// <returns></returns>
|
|
|
public async Task<List<VisitAndOrgSatisfactionStatisticsDto>> VisitAndOrgSatisfactionStatistics(PagedKeywordSonRequest dto)
|
|
|
{
|
|
|
- dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
-
|
|
|
bool IsCenter = _sessionContext.OrgIsCenter;
|
|
|
|
|
|
var list = _orderVisitDetailRepository.Queryable()
|
|
@@ -1227,8 +1228,6 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
/// <returns></returns>
|
|
|
public async Task<List<VisitAndOrgSatisfactionStatisticsDto>> VisitAndOrgStatisfactionOrgDetail(PagedKeywordSonRequest dto)
|
|
|
{
|
|
|
- dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
-
|
|
|
bool IsCenter = _sessionContext.OrgIsCenter;
|
|
|
|
|
|
var list = await _systemOrganizeRepository.Queryable().Where(x => x.Id.StartsWith(dto.OrgCode))
|
|
@@ -1276,7 +1275,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
/// <summary>
|
|
|
/// 热点区域统计
|
|
@@ -1285,7 +1284,6 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
/// <returns></returns>
|
|
|
public async Task<(List<SystemArea> area, object items)> HotspotAndAreaStatistics(HotspotAndAreaStatisticsReq dto)
|
|
|
{
|
|
|
- dto.EndTime = dto.EndTime.AddDays(1).AddSeconds(-1);
|
|
|
var areaList = _systemAreaRepository.Queryable().Where(x => SqlFunc.Length(x.Id) == 6 && x.Id != "510000").OrderBy(x => x.Id).MergeTable();
|
|
|
|
|
|
var endIndex = (2 * dto.HotspotLevel).ToString();
|
|
@@ -1354,7 +1352,6 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
/// <returns></returns>
|
|
|
public async Task<DataTable> HotspotAndAreaStatisticsExport(HotspotAndAreaStatisticsReq dto)
|
|
|
{
|
|
|
- dto.EndTime = dto.EndTime.AddDays(1).AddSeconds(-1);
|
|
|
var areaList = _systemAreaRepository.Queryable().Where(x => SqlFunc.Length(x.Id) == 6 && x.Id != "510000").OrderBy(x => x.Id).MergeTable();
|
|
|
|
|
|
var endIndex = (2 * dto.HotspotLevel).ToString();
|
|
@@ -1429,10 +1426,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());
|
|
|
}
|
|
@@ -1443,10 +1440,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());
|
|
|
}
|
|
@@ -1575,8 +1572,6 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
/// <returns></returns>
|
|
|
public async Task<List<VisitAndHotspotSatisfactionStatisticsDto>> VisitAndHotspotSatisfactionStatistics(VisitAndHotspotPagedKeywordRequest dto)
|
|
|
{
|
|
|
- dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
-
|
|
|
bool IsCenter = _sessionContext.OrgIsCenter;
|
|
|
|
|
|
var list = _orderVisitDetailRepository.Queryable()
|
|
@@ -1644,7 +1639,6 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
/// <returns></returns>
|
|
|
public ISugarQueryable<OrderVisitDetail> VisitAndHotspotSatisfactionDetail(VisitAndHotspotPagedKeywordRequest dto)
|
|
|
{
|
|
|
- dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
bool IsCenter = _sessionContext.OrgIsCenter;
|
|
|
var key = string.Empty;
|
|
|
if (!string.IsNullOrEmpty(dto.TitleCode))
|
|
@@ -1692,8 +1686,6 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
{
|
|
|
if (!dto.StartTime.HasValue || !dto.EndTime.HasValue) throw UserFriendlyException.SameMessage("请选择时间!");
|
|
|
|
|
|
- dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
-
|
|
|
var query = _orderRepository.Queryable(false, false, false)
|
|
|
.WhereIF(dto.StartTime.HasValue, it => it.CreationTime >= dto.StartTime)
|
|
|
.WhereIF(dto.EndTime.HasValue, it => it.CreationTime <= dto.EndTime)
|
|
@@ -1750,7 +1742,6 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
/// <returns></returns>
|
|
|
public async Task<(List<SystemDicData> acceptTypes, object items)> HotspotAndAcceptTypeStatistics(HotspotAndAcceptTypeStatisticsReq dto)
|
|
|
{
|
|
|
- dto.EndTime = dto.EndTime.AddDays(1).AddSeconds(-1);
|
|
|
var dicList = _systemDicDataRepository.Queryable().Where(x => x.DicTypeCode == "AcceptType").OrderBy(x => x.Sort).MergeTable();
|
|
|
var endIndex = (2 * dto.HotspotLevel).ToString();
|
|
|
var hotspotList = _hotspotRepository.Queryable().Where(x => SqlFunc.Length(x.Id) == int.Parse(endIndex))
|
|
@@ -1812,7 +1803,6 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
/// <returns></returns>
|
|
|
public async Task<DataTable> HotspotAndAcceptTypeStatisticsExport(HotspotAndAcceptTypeStatisticsReq dto)
|
|
|
{
|
|
|
- dto.EndTime = dto.EndTime.AddDays(1).AddSeconds(-1);
|
|
|
var dicList = _systemDicDataRepository.Queryable().Where(x => x.DicTypeCode == "AcceptType").OrderBy(x => x.Sort).MergeTable();
|
|
|
var endIndex = (2 * dto.HotspotLevel).ToString();
|
|
|
var hotspotList = _hotspotRepository.Queryable().Where(x => SqlFunc.Length(x.Id) == int.Parse(endIndex))
|
|
@@ -1874,7 +1864,6 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
/// <returns></returns>
|
|
|
public ISugarQueryable<Order> HotspotAndAcceptTypeStatisticsDetail(HotspotAndAcceptTypeStatisticsDetailReq dto)
|
|
|
{
|
|
|
- dto.EndTime = dto.EndTime.AddDays(1).AddSeconds(-1);
|
|
|
var query = _orderRepository.Queryable()
|
|
|
.Where(x => x.HotspotId.StartsWith(dto.HotspotId) && x.CreationTime >= dto.StartTime && x.CreationTime < dto.EndTime)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.AcceptTypeCode), x => x.AcceptTypeCode.StartsWith(dto.AcceptTypeCode))
|
|
@@ -1888,8 +1877,6 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
/// <returns></returns>
|
|
|
public ISugarQueryable<OrderScreenApplyVo> OrderScreenApply(OrderScreenApplyPagedRequest dto)
|
|
|
{
|
|
|
- if (dto.EndTime.HasValue)
|
|
|
- dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
var query = _orderScreenRepository.Queryable()
|
|
|
.WhereIF(dto.StartTime.HasValue && dto.EndTime.HasValue, x => x.CreationTime >= dto.StartTime && x.CreationTime <= dto.EndTime)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.ApplyUserName), x => x.CreatorName == dto.ApplyUserName)
|
|
@@ -1911,22 +1898,20 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
/// <returns></returns>
|
|
|
public ISugarQueryable<OrderScreenAuditVo> OrderScreenAudit(OrderScreenAuditPagedRequest dto)
|
|
|
{
|
|
|
- if (dto.EndTime.HasValue)
|
|
|
- dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
- var query = _workflowTraceRepository.Queryable()
|
|
|
- .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 != "" )
|
|
|
- .WhereIF(dto.AuditType is 1,x=>x.Name == "班长审批")
|
|
|
- .WhereIF(dto.AuditType is 2, x => x.Name == "中心领导")
|
|
|
- .GroupBy(x => new { x.HandlerName })
|
|
|
- .Select(x => new OrderScreenAuditVo
|
|
|
- {
|
|
|
- AuditName = x.HandlerName,
|
|
|
- AuditNum = SqlFunc.AggregateSum(SqlFunc.IIF(x.TraceType == EWorkflowTraceType.Normal, 1, 0)),
|
|
|
- AuditBackNum = SqlFunc.AggregateSum(SqlFunc.IIF( x.TraceType == EWorkflowTraceType.Previous , 1, 0)),
|
|
|
- });
|
|
|
- return query;
|
|
|
+ var query = _workflowTraceRepository.Queryable()
|
|
|
+ .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 != "")
|
|
|
+ .WhereIF(dto.AuditType is 1, x => x.Name == "班长审批")
|
|
|
+ .WhereIF(dto.AuditType is 2, x => x.Name == "中心领导")
|
|
|
+ .GroupBy(x => new { x.HandlerName })
|
|
|
+ .Select(x => new OrderScreenAuditVo
|
|
|
+ {
|
|
|
+ AuditName = x.HandlerName,
|
|
|
+ AuditNum = SqlFunc.AggregateSum(SqlFunc.IIF(x.TraceType == EWorkflowTraceType.Normal, 1, 0)),
|
|
|
+ AuditBackNum = SqlFunc.AggregateSum(SqlFunc.IIF(x.TraceType == EWorkflowTraceType.Previous, 1, 0)),
|
|
|
+ });
|
|
|
+ return query;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -1936,8 +1921,6 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
/// <returns></returns>
|
|
|
public ISugarQueryable<OrderCenterAcceptVo> OrderCenterAccept(OrderCenterAcceptPagedRequest dto)
|
|
|
{
|
|
|
- if (dto.EndTime.HasValue)
|
|
|
- dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
var sendBack = _orderSendBackAuditRepository.Queryable()
|
|
|
.Where(x => x.State == ESendBackAuditState.End)
|
|
|
.GroupBy(x => x.OrderId).Select(x => new { OrderId = x.OrderId });
|
|
@@ -1957,7 +1940,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
InvalidNum = SqlFunc.AggregateSum(SqlFunc.IIF(d.AcceptType == "无效", 1, 0)),
|
|
|
HandleNum = SqlFunc.AggregateSum(SqlFunc.IIF(d.Status >= EOrderStatus.Filed, 1, 0)),
|
|
|
NoHandleNum = SqlFunc.AggregateSum(SqlFunc.IIF(d.Status < EOrderStatus.Filed, 1, 0)),
|
|
|
- BackNum = SqlFunc.AggregateSum(SqlFunc.IIF(s.OrderId != null && s.OrderId != "", 1, 0)),
|
|
|
+ BackNum = SqlFunc.AggregateSum(SqlFunc.IIF(s.OrderId != null && s.OrderId != "", 1, 0)),
|
|
|
DutyDeskNum = SqlFunc.AggregateDistinctCount(d.AcceptorId)
|
|
|
});
|
|
|
return query;
|
|
@@ -1969,30 +1952,28 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
/// <returns></returns>
|
|
|
public ISugarQueryable<OrderCenterAcceptUserVo> OrderCenterAcceptUser(OrderCenterAcceptPagedRequest dto)
|
|
|
{
|
|
|
- if (dto.EndTime.HasValue)
|
|
|
- dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
var sendBack = _orderSendBackAuditRepository.Queryable()
|
|
|
.Where(x => x.State == ESendBackAuditState.End)
|
|
|
.GroupBy(x => x.OrderId).Select(x => new { OrderId = x.OrderId });
|
|
|
|
|
|
- var query = _orderRepository.Queryable()
|
|
|
- .LeftJoin(sendBack, (d, s) => d.Id == s.OrderId)
|
|
|
- .WhereIF(dto.StartTime.HasValue && dto.EndTime.HasValue, d => d.CreationTime >= dto.StartTime && d.CreationTime <= dto.EndTime)
|
|
|
- .WhereIF(dto.TypeCode != null && dto.TypeCode == 1, d => d.IdentityType == EIdentityType.Citizen)
|
|
|
- .WhereIF(dto.TypeCode != null && dto.TypeCode == 2, d => d.IdentityType == EIdentityType.Enterprise)
|
|
|
- .GroupBy(d => d.AcceptorName)
|
|
|
- .Select((d, s) => new OrderCenterAcceptUserVo
|
|
|
- {
|
|
|
- AcceptUserName = d.AcceptorName,
|
|
|
- AcceptNum = SqlFunc.AggregateCount(1),
|
|
|
- ValidNum = SqlFunc.AggregateSum(SqlFunc.IIF(d.AcceptType != "无效", 1, 0)),
|
|
|
- RepetitionNum = SqlFunc.AggregateSum(SqlFunc.IIF(d.DuplicateIds == null || SqlFunc.JsonArrayLength(d.DuplicateIds) > 0, 1, 0)),
|
|
|
- InvalidNum = SqlFunc.AggregateSum(SqlFunc.IIF(d.AcceptType == "无效", 1, 0)),
|
|
|
- HandleNum = SqlFunc.AggregateSum(SqlFunc.IIF(d.Status >= EOrderStatus.Filed, 1, 0)),
|
|
|
- NoHandleNum = SqlFunc.AggregateSum(SqlFunc.IIF(d.Status < EOrderStatus.Filed, 1, 0)),
|
|
|
- BackNum = SqlFunc.AggregateSum(SqlFunc.IIF(s.OrderId != null && s.OrderId != "", 1, 0))
|
|
|
- });
|
|
|
- return query;
|
|
|
+ var query = _orderRepository.Queryable()
|
|
|
+ .LeftJoin(sendBack, (d, s) => d.Id == s.OrderId)
|
|
|
+ .WhereIF(dto.StartTime.HasValue && dto.EndTime.HasValue, d => d.CreationTime >= dto.StartTime && d.CreationTime <= dto.EndTime)
|
|
|
+ .WhereIF(dto.TypeCode != null && dto.TypeCode == 1, d => d.IdentityType == EIdentityType.Citizen)
|
|
|
+ .WhereIF(dto.TypeCode != null && dto.TypeCode == 2, d => d.IdentityType == EIdentityType.Enterprise)
|
|
|
+ .GroupBy(d => d.AcceptorName)
|
|
|
+ .Select((d, s) => new OrderCenterAcceptUserVo
|
|
|
+ {
|
|
|
+ AcceptUserName = d.AcceptorName,
|
|
|
+ AcceptNum = SqlFunc.AggregateCount(1),
|
|
|
+ ValidNum = SqlFunc.AggregateSum(SqlFunc.IIF(d.AcceptType != "无效", 1, 0)),
|
|
|
+ RepetitionNum = SqlFunc.AggregateSum(SqlFunc.IIF(d.DuplicateIds == null || SqlFunc.JsonArrayLength(d.DuplicateIds) > 0, 1, 0)),
|
|
|
+ InvalidNum = SqlFunc.AggregateSum(SqlFunc.IIF(d.AcceptType == "无效", 1, 0)),
|
|
|
+ HandleNum = SqlFunc.AggregateSum(SqlFunc.IIF(d.Status >= EOrderStatus.Filed, 1, 0)),
|
|
|
+ NoHandleNum = SqlFunc.AggregateSum(SqlFunc.IIF(d.Status < EOrderStatus.Filed, 1, 0)),
|
|
|
+ BackNum = SqlFunc.AggregateSum(SqlFunc.IIF(s.OrderId != null && s.OrderId != "", 1, 0))
|
|
|
+ });
|
|
|
+ return query;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -2041,12 +2022,12 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
private async Task<AddOrderResponse> ReceiveOrderFromProvinceAsync(AddOrderDto dto, List<FileDto> files,
|
|
|
ISessionContext current, CancellationToken cancellationToken)
|
|
|
{
|
|
|
- if (string.IsNullOrEmpty(dto.ProvinceNo))
|
|
|
+ if (string.IsNullOrEmpty(dto.ReceiveProvinceNo))
|
|
|
throw new UserFriendlyException("无效省工单编号");
|
|
|
|
|
|
- var orderExtension = await _orderDomainService.GetOrderExtensionsAsync(dto.ProvinceNo, cancellationToken);
|
|
|
+ var orderExtension = await _orderDomainService.GetOrderExtensionsAsync(dto.ReceiveProvinceNo, cancellationToken);
|
|
|
|
|
|
- var order = await _orderRepository.GetAsync(d => d.ProvinceNo == dto.ProvinceNo, cancellationToken);
|
|
|
+ var order = await _orderRepository.GetAsync(d => d.ReceiveProvinceNo == dto.ReceiveProvinceNo, cancellationToken);
|
|
|
if (order is null)
|
|
|
{
|
|
|
order = _mapper.Map<Order>(dto);
|
|
@@ -2084,7 +2065,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
//特提(撤回至发起)
|
|
|
if (!string.IsNullOrEmpty(order.WorkflowId))
|
|
|
{
|
|
|
- current = SessionContextCreator.CreateSessionContext("province");
|
|
|
+ current = SessionContextCreator.CreateSessionContext("province",_cityBaseConfiguration.Value);
|
|
|
await _workflowDomainService.RecallToStartStepAsync(order.WorkflowId, "省工单重派", current, cancellationToken);
|
|
|
}
|
|
|
}
|
|
@@ -2116,32 +2097,32 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
NoSendOrderNum = SqlFunc.AggregateSum(SqlFunc.IIF(x.HandlerId == null || x.HandlerId == "", 1, 0)),
|
|
|
}).ToListAsync();
|
|
|
|
|
|
- var items2 = await _workflowTraceRepository.Queryable()
|
|
|
- .LeftJoin<Workflow>((x, w) => x.WorkflowId == w.Id)
|
|
|
- //.LeftJoin<WorkflowStepHandler>((x, w, wfsh) => x.StepId == wfsh.WorkflowStepId && wfsh.IsActualHandler == true)
|
|
|
- .InnerJoin<SchedulingUser>((x, w, su) => x.HandlerId == su.UserId)
|
|
|
- .Where((x, w, su) => w.ModuleCode == WorkflowModuleConsts.OrderHandle && x.BusinessType == EBusinessType.Send && x.Status == EWorkflowStepStatus.Handled
|
|
|
- && !string.IsNullOrEmpty(x.NextMainHandler) && x.NextMainHandler != OrgSeedData.CenterId)
|
|
|
- .Where((x, w, su) => x.CreationTime >= dto.StartTime.Value)
|
|
|
- .Where((x, w, su) => x.CreationTime <= dto.EndTime.Value)
|
|
|
- .GroupBy((x, w, su) => x.WorkflowId)
|
|
|
- .Having((x, w, su) => SqlFunc.AggregateCount(x.WorkflowId) > 1)
|
|
|
- .Select((x, w, su) => new { Id = x.WorkflowId, CreationTime = SqlFunc.AggregateMin(x.CreationTime) })
|
|
|
- .MergeTable()
|
|
|
- .LeftJoin<WorkflowTrace>((a, wt) => a.Id == wt.WorkflowId)
|
|
|
- .LeftJoin<Workflow>((a, wt, wf) => wt.WorkflowId == wf.Id)
|
|
|
- //.LeftJoin<WorkflowStepHandler>((a, wt, wf, wsh) => wt.StepId == wsh.WorkflowStepId && wsh.CreationTime == a.CreationTime)
|
|
|
- .InnerJoin<SchedulingUser>((a, wt, wf, su) => wt.HandlerId == su.UserId)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.UserName), ((a, wt, wf, su) => su.UserName == dto.UserName))
|
|
|
- .GroupBy((a, wt, wf, su) => new { su.UserId, su.UserName })
|
|
|
- .Select((a, wt, wf, su) => new BiOrderSendVo
|
|
|
- {
|
|
|
- UserId = su.UserId,
|
|
|
- UserName = su.UserName,
|
|
|
- SendOrderNum = 0,
|
|
|
- NoSendOrderNum = 0,
|
|
|
- ReSendOrderNum = SqlFunc.AggregateDistinctCount(wf.ExternalId),
|
|
|
- }).ToListAsync();
|
|
|
+ var items2 = await _workflowTraceRepository.Queryable()
|
|
|
+ .LeftJoin<Workflow>((x, w) => x.WorkflowId == w.Id)
|
|
|
+ //.LeftJoin<WorkflowStepHandler>((x, w, wfsh) => x.StepId == wfsh.WorkflowStepId && wfsh.IsActualHandler == true)
|
|
|
+ .InnerJoin<SchedulingUser>((x, w, su) => x.HandlerId == su.UserId)
|
|
|
+ .Where((x, w, su) => w.ModuleCode == WorkflowModuleConsts.OrderHandle && x.BusinessType == EBusinessType.Send && x.Status == EWorkflowStepStatus.Handled
|
|
|
+ && !string.IsNullOrEmpty(x.NextMainHandler) && x.NextMainHandler != OrgSeedData.CenterId)
|
|
|
+ .Where((x, w, su) => x.CreationTime >= dto.StartTime.Value)
|
|
|
+ .Where((x, w, su) => x.CreationTime <= dto.EndTime.Value)
|
|
|
+ .GroupBy((x, w, su) => x.WorkflowId)
|
|
|
+ .Having((x, w, su) => SqlFunc.AggregateCount(x.WorkflowId) > 1)
|
|
|
+ .Select((x, w, su) => new { Id = x.WorkflowId, CreationTime = SqlFunc.AggregateMin(x.CreationTime) })
|
|
|
+ .MergeTable()
|
|
|
+ .LeftJoin<WorkflowTrace>((a, wt) => a.Id == wt.WorkflowId)
|
|
|
+ .LeftJoin<Workflow>((a, wt, wf) => wt.WorkflowId == wf.Id)
|
|
|
+ //.LeftJoin<WorkflowStepHandler>((a, wt, wf, wsh) => wt.StepId == wsh.WorkflowStepId && wsh.CreationTime == a.CreationTime)
|
|
|
+ .InnerJoin<SchedulingUser>((a, wt, wf, su) => wt.HandlerId == su.UserId)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.UserName), ((a, wt, wf, su) => su.UserName == dto.UserName))
|
|
|
+ .GroupBy((a, wt, wf, su) => new { su.UserId, su.UserName })
|
|
|
+ .Select((a, wt, wf, su) => new BiOrderSendVo
|
|
|
+ {
|
|
|
+ UserId = su.UserId,
|
|
|
+ UserName = su.UserName,
|
|
|
+ SendOrderNum = 0,
|
|
|
+ NoSendOrderNum = 0,
|
|
|
+ ReSendOrderNum = SqlFunc.AggregateDistinctCount(wf.ExternalId),
|
|
|
+ }).ToListAsync();
|
|
|
|
|
|
var res = (from t1 in items
|
|
|
join t2 in items2 on t1.UserId equals t2.UserId into t1_t2
|
|
@@ -2175,23 +2156,23 @@ public class OrderApplication : IOrderApplication, IScopeDependency
|
|
|
{
|
|
|
dto.EndTime = dto.EndTime?.AddDays(1).AddSeconds(-1);
|
|
|
}
|
|
|
- return _orderVisitRepository.Queryable()
|
|
|
- .WhereIF(dto.StartTime.HasValue, x => x.VisitTime >= dto.StartTime)
|
|
|
- .WhereIF(dto.EndTime.HasValue, x => x.VisitTime <= dto.EndTime)
|
|
|
- .GroupBy(x => new { EmployeeId = x.EmployeeId, Name = x.Employee.Name })
|
|
|
- .Select(x => new OrderVisitJudeStatisticsRep()
|
|
|
- {
|
|
|
- EmpId = x.EmployeeId,
|
|
|
- EmpName = x.Employee.Name,
|
|
|
- OrgJudeCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.OrgJudge.HasValue && x.OrgJudge == true && x.JudgeState !=null, 1, 0)), //部门扭转总件
|
|
|
- OrgJudeApprovalingCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.OrgJudge.HasValue && x.OrgJudge == true && x.JudgeState == EJudgeState.Judging, 1, 0)),
|
|
|
- OrgJudeSuccessCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.OrgJudge.HasValue && x.OrgJudge== true && x.JudgeState == EJudgeState.Agreed, 1, 0)),
|
|
|
- OrgJudeFailCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.OrgJudge.HasValue && x.OrgJudge == true && x.JudgeState == EJudgeState.UnAgreed, 1, 0)),
|
|
|
- SeatJudeCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.SeatJudge.HasValue && x.SeatJudge == true && x.JudgeState!=null, 1, 0)),
|
|
|
- SeatJudeApprovalingCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.SeatJudge.HasValue && x.SeatJudge == true && x.JudgeState == EJudgeState.Judging, 1, 0)),
|
|
|
- SeatJudeSuccessCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.SeatJudge.HasValue && x.SeatJudge == true && x.JudgeState == EJudgeState.Agreed, 1, 0)),
|
|
|
- SeatJudeFailCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.SeatJudge.HasValue && x.SeatJudge == true && x.JudgeState == EJudgeState.UnAgreed, 1, 0))
|
|
|
- });
|
|
|
+ return _orderVisitRepository.Queryable()
|
|
|
+ .WhereIF(dto.StartTime.HasValue, x => x.VisitTime >= dto.StartTime)
|
|
|
+ .WhereIF(dto.EndTime.HasValue, x => x.VisitTime <= dto.EndTime)
|
|
|
+ .GroupBy(x => new { EmployeeId = x.EmployeeId, Name = x.Employee.Name })
|
|
|
+ .Select(x => new OrderVisitJudeStatisticsRep()
|
|
|
+ {
|
|
|
+ EmpId = x.EmployeeId,
|
|
|
+ EmpName = x.Employee.Name,
|
|
|
+ OrgJudeCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.OrgJudge.HasValue && x.OrgJudge == true && x.JudgeState != null, 1, 0)), //部门扭转总件
|
|
|
+ OrgJudeApprovalingCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.OrgJudge.HasValue && x.OrgJudge == true && x.JudgeState == EJudgeState.Judging, 1, 0)),
|
|
|
+ OrgJudeSuccessCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.OrgJudge.HasValue && x.OrgJudge == true && x.JudgeState == EJudgeState.Agreed, 1, 0)),
|
|
|
+ OrgJudeFailCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.OrgJudge.HasValue && x.OrgJudge == true && x.JudgeState == EJudgeState.UnAgreed, 1, 0)),
|
|
|
+ SeatJudeCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.SeatJudge.HasValue && x.SeatJudge == true && x.JudgeState != null, 1, 0)),
|
|
|
+ SeatJudeApprovalingCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.SeatJudge.HasValue && x.SeatJudge == true && x.JudgeState == EJudgeState.Judging, 1, 0)),
|
|
|
+ SeatJudeSuccessCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.SeatJudge.HasValue && x.SeatJudge == true && x.JudgeState == EJudgeState.Agreed, 1, 0)),
|
|
|
+ SeatJudeFailCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.SeatJudge.HasValue && x.SeatJudge == true && x.JudgeState == EJudgeState.UnAgreed, 1, 0))
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
#endregion
|