|
@@ -3,6 +3,7 @@ using Hotline.IndustryClassification;
|
|
|
using Hotline.Orders;
|
|
|
using Hotline.Settings;
|
|
|
using Hotline.Share.Dtos.IndustryClassification;
|
|
|
+using Hotline.Share.Enums.FlowEngine;
|
|
|
using Hotline.Share.Enums.Order;
|
|
|
using Hotline.Share.Requests;
|
|
|
using MapsterMapper;
|
|
@@ -18,16 +19,19 @@ namespace Hotline.Application.IndustryClassification
|
|
|
private readonly ISystemOrganizeRepository _organizeRepository;
|
|
|
private readonly IIndustryClassificationRepositpry _industrialManagementRepository;
|
|
|
private readonly ISessionContext _sessionContext;
|
|
|
+ private readonly IOrderRepository _orderRepository;
|
|
|
|
|
|
public IndustryClassificationApplication(IMapper mapper,
|
|
|
ISystemOrganizeRepository organizeRepository,
|
|
|
IIndustryClassificationRepositpry industrialManagementRepository,
|
|
|
- ISessionContext sessionContext)
|
|
|
+ ISessionContext sessionContext,
|
|
|
+ IOrderRepository orderRepository)
|
|
|
{
|
|
|
_mapper = mapper;
|
|
|
_organizeRepository = organizeRepository;
|
|
|
_industrialManagementRepository = industrialManagementRepository;
|
|
|
_sessionContext = sessionContext;
|
|
|
+ _orderRepository = orderRepository;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -56,7 +60,7 @@ namespace Hotline.Application.IndustryClassification
|
|
|
/// </summary>
|
|
|
/// <param name="dto"></param>
|
|
|
/// <returns></returns>
|
|
|
- public ISugarQueryable<IndustrialManagementOrderDto> GetIndustrialManagementOrderList(IndustrialManagementRequestDto dto)
|
|
|
+ public ISugarQueryable<IndustrialManagementOrderDto> GetIndustrialManagementOrderList(IndustrialManagementRequestDto dto)
|
|
|
{
|
|
|
string industrialId = "";
|
|
|
if (!_sessionContext.OrgIsCenter)
|
|
@@ -70,11 +74,72 @@ namespace Hotline.Application.IndustryClassification
|
|
|
industrialId = "-1";
|
|
|
}
|
|
|
|
|
|
- var query = _industrialManagementRepository.Queryable()
|
|
|
+ var queryorder = _industrialManagementRepository.Queryable()
|
|
|
+ .InnerJoin<IndustryAssociations>((i, io) => i.Id == io.IndustrialManagementId)
|
|
|
+ .InnerJoin<Order>((i, io, o) => io.OrganizeId == o.ActualHandleOrgCode)
|
|
|
+ // .InnerJoin<Order>((i, io, s, o) => s.ExternalId == o.Id)
|
|
|
+ .Where((i, io, o) => o.Status >= EOrderStatus.Filed)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(industrialId), (i, io, o) => io.IndustrialManagementId == industrialId)
|
|
|
+ .OrderBy((i, io, o) => i.Id)
|
|
|
+ .GroupBy((i, io, o) => new
|
|
|
+ {
|
|
|
+ o.Id,
|
|
|
+ o.Status,
|
|
|
+ IndustrialId = i.Id,
|
|
|
+ i.IndustrialName,
|
|
|
+ o.Title,
|
|
|
+ o.No,
|
|
|
+ o.AcceptType,
|
|
|
+ o.AcceptTypeCode,
|
|
|
+ o.HotspotId,
|
|
|
+ o.HotspotName,
|
|
|
+ o.HotspotSpliceName,
|
|
|
+ o.HotspotExternal,
|
|
|
+ o.CreationTime,
|
|
|
+ o.StartTime,
|
|
|
+ o.OrgLevelOneCode,
|
|
|
+ o.OrgLevelOneName,
|
|
|
+ o.ActualHandleOrgName,
|
|
|
+ o.ActualHandleOrgCode,
|
|
|
+ o.CounterSignType,
|
|
|
+ o.FiledTime,
|
|
|
+ o.ExpiredTime,
|
|
|
+ o.NearlyExpiredTime,
|
|
|
+ o.NearlyExpiredTimeOne
|
|
|
+ })
|
|
|
+ .Select((i, io, o) => new IndustrialManagementOrderDto
|
|
|
+ {
|
|
|
+
|
|
|
+ Id = o.Id,
|
|
|
+ Status = o.Status,
|
|
|
+ IndustrialId = i.Id,
|
|
|
+ IndustrialName = i.IndustrialName,
|
|
|
+ Title = o.Title,
|
|
|
+ No = o.No,
|
|
|
+ AcceptType = o.AcceptType,
|
|
|
+ AcceptTypeCode = o.AcceptTypeCode,
|
|
|
+ HotspotId = o.HotspotId,
|
|
|
+ HotspotName = o.HotspotName,
|
|
|
+ HotspotSpliceName = o.HotspotSpliceName,
|
|
|
+ HotspotExternal = o.HotspotExternal,
|
|
|
+ CreationTime = o.CreationTime,
|
|
|
+ StartTime = o.StartTime,
|
|
|
+ OrgLevelOneCode = o.OrgLevelOneCode,
|
|
|
+ OrgLevelOneName = o.OrgLevelOneName,
|
|
|
+ ActualHandleOrgName = o.ActualHandleOrgName,
|
|
|
+ ActualHandleOrgCode = o.ActualHandleOrgCode,
|
|
|
+ CounterSignType = o.CounterSignType,
|
|
|
+ FiledTime = o.FiledTime,
|
|
|
+ ExpiredTime = o.ExpiredTime,
|
|
|
+ NearlyExpiredTime = o.NearlyExpiredTime,
|
|
|
+ NearlyExpiredTimeOne = o.NearlyExpiredTimeOne
|
|
|
+ }).MergeTable()
|
|
|
+ ;
|
|
|
+ var queryhuiqian = _industrialManagementRepository.Queryable()
|
|
|
.InnerJoin<IndustryAssociations>((i, io) => i.Id == io.IndustrialManagementId)
|
|
|
.InnerJoin<WorkflowStep>((i, io, s) => io.OrganizeId == s.HandlerOrgId)
|
|
|
.InnerJoin<Order>((i, io, s, o) => s.ExternalId == o.Id)
|
|
|
- .Where((i, io, s, o) => o.Status >= EOrderStatus.Filed)
|
|
|
+ .Where((i, io, s, o) => o.Status >= EOrderStatus.Filed && s.CountersignPosition == ECountersignPosition.Direct)
|
|
|
.WhereIF(!string.IsNullOrEmpty(industrialId), (i, io, s, o) => io.IndustrialManagementId == industrialId)
|
|
|
.OrderBy((i, io, s, o) => i.Id)
|
|
|
.GroupBy((i, io, s, o) => new
|
|
@@ -130,20 +195,153 @@ namespace Hotline.Application.IndustryClassification
|
|
|
NearlyExpiredTime = o.NearlyExpiredTime,
|
|
|
NearlyExpiredTimeOne = o.NearlyExpiredTimeOne
|
|
|
}).MergeTable()
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.IndustrialName), d => d.IndustrialName.Contains(dto.IndustrialName))
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.Title), d => d.Title.Contains(dto.Title))
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No.Contains(dto.No))
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.AcceptTypeCode), d => d.AcceptTypeCode == dto.AcceptTypeCode)
|
|
|
- .WhereIF(dto.StartTime.HasValue, d => d.CreationTime >= dto.StartTime) //受理时间开始
|
|
|
- .WhereIF(dto.EndTime.HasValue, d => d.CreationTime <= dto.EndTime) //受理时间结束
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.HotspotSpliceName), d => d.HotspotSpliceName.Contains(dto.HotspotSpliceName))
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.OrgLevelOneName), d => d.OrgLevelOneName.Contains(dto.OrgLevelOneName))
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName), d => d.ActualHandleOrgName.Contains(dto.ActualHandleOrgName))
|
|
|
- .OrderByIF(string.IsNullOrEmpty(dto.SortField), d => d.CreationTime, OrderByType.Desc) //默认排序时间为创建时间
|
|
|
- .OrderByIF(dto is { SortField: "creationTime", SortRule: 0 }, d => d.CreationTime, OrderByType.Asc) //工单创建时间
|
|
|
- .OrderByIF(dto is { SortField: "creationTime", SortRule: 1 }, d => d.CreationTime, OrderByType.Desc) //工单创建时间降序
|
|
|
;
|
|
|
+
|
|
|
+ var query = _orderRepository.UnionAll(queryorder, queryhuiqian)
|
|
|
+ .OrderBy(d => d.Id)
|
|
|
+ .GroupBy(d => new
|
|
|
+ {
|
|
|
+ d.Id,
|
|
|
+ d.Status,
|
|
|
+ d.IndustrialId,
|
|
|
+ d.IndustrialName,
|
|
|
+ d.Title,
|
|
|
+ d.No,
|
|
|
+ d.AcceptType,
|
|
|
+ d.AcceptTypeCode,
|
|
|
+ d.HotspotId,
|
|
|
+ d.HotspotName,
|
|
|
+ d.HotspotSpliceName,
|
|
|
+ d.HotspotExternal,
|
|
|
+ d.CreationTime,
|
|
|
+ d.StartTime,
|
|
|
+ d.OrgLevelOneCode,
|
|
|
+ d.OrgLevelOneName,
|
|
|
+ d.ActualHandleOrgName,
|
|
|
+ d.ActualHandleOrgCode,
|
|
|
+ d.CounterSignType,
|
|
|
+ d.FiledTime,
|
|
|
+ d.ExpiredTime,
|
|
|
+ d.NearlyExpiredTime,
|
|
|
+ d.NearlyExpiredTimeOne
|
|
|
+ })
|
|
|
+ .Select(d => new IndustrialManagementOrderDto
|
|
|
+ {
|
|
|
+
|
|
|
+ Id = d.Id,
|
|
|
+ Status = d.Status,
|
|
|
+ IndustrialId = d.IndustrialId,
|
|
|
+ IndustrialName = d.IndustrialName,
|
|
|
+ Title = d.Title,
|
|
|
+ No = d.No,
|
|
|
+ AcceptType = d.AcceptType,
|
|
|
+ AcceptTypeCode = d.AcceptTypeCode,
|
|
|
+ HotspotId = d.HotspotId,
|
|
|
+ HotspotName = d.HotspotName,
|
|
|
+ HotspotSpliceName = d.HotspotSpliceName,
|
|
|
+ HotspotExternal = d.HotspotExternal,
|
|
|
+ CreationTime = d.CreationTime,
|
|
|
+ StartTime = d.StartTime,
|
|
|
+ OrgLevelOneCode = d.OrgLevelOneCode,
|
|
|
+ OrgLevelOneName = d.OrgLevelOneName,
|
|
|
+ ActualHandleOrgName = d.ActualHandleOrgName,
|
|
|
+ ActualHandleOrgCode = d.ActualHandleOrgCode,
|
|
|
+ CounterSignType = d.CounterSignType,
|
|
|
+ FiledTime = d.FiledTime,
|
|
|
+ ExpiredTime = d.ExpiredTime,
|
|
|
+ NearlyExpiredTime = d.NearlyExpiredTime,
|
|
|
+ NearlyExpiredTimeOne = d.NearlyExpiredTimeOne
|
|
|
+ }).MergeTable()
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.IndustrialName), d => d.IndustrialName.Contains(dto.IndustrialName))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Title), d => d.Title.Contains(dto.Title))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No.Contains(dto.No))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.AcceptTypeCode), d => d.AcceptTypeCode == dto.AcceptTypeCode)
|
|
|
+ .WhereIF(dto.StartTime.HasValue, d => d.CreationTime >= dto.StartTime) //受理时间开始
|
|
|
+ .WhereIF(dto.EndTime.HasValue, d => d.CreationTime <= dto.EndTime) //受理时间结束
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.HotspotSpliceName), d => d.HotspotSpliceName.Contains(dto.HotspotSpliceName))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.OrgLevelOneName), d => d.OrgLevelOneName.Contains(dto.OrgLevelOneName))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName), d => d.ActualHandleOrgName.Contains(dto.ActualHandleOrgName))
|
|
|
+ .OrderByIF(string.IsNullOrEmpty(dto.SortField), d => d.CreationTime, OrderByType.Desc) //默认排序时间为创建时间
|
|
|
+ .OrderByIF(dto is { SortField: "creationTime", SortRule: 0 }, d => d.CreationTime, OrderByType.Asc) //工单创建时间
|
|
|
+ .OrderByIF(dto is { SortField: "creationTime", SortRule: 1 }, d => d.CreationTime, OrderByType.Desc) //工单创建时间降序
|
|
|
+ ;
|
|
|
+
|
|
|
return query;
|
|
|
+
|
|
|
+ //var query = _industrialManagementRepository.Queryable()
|
|
|
+ // .InnerJoin<IndustryAssociations>((i, io) => i.Id == io.IndustrialManagementId)
|
|
|
+ // .InnerJoin<WorkflowStep>((i, io, s) => io.OrganizeId == s.HandlerOrgId)
|
|
|
+ // .InnerJoin<Order>((i, io, s, o) => s.ExternalId == o.Id)
|
|
|
+ // .Where((i, io, s, o) => o.Status >= EOrderStatus.Filed)
|
|
|
+ // .WhereIF(!string.IsNullOrEmpty(industrialId), (i, io, s, o) => io.IndustrialManagementId == industrialId)
|
|
|
+ // .OrderBy((i, io, s, o) => i.Id)
|
|
|
+ // .GroupBy((i, io, s, o) => new
|
|
|
+ // {
|
|
|
+ // o.Id,
|
|
|
+ // o.Status,
|
|
|
+ // IndustrialId = i.Id,
|
|
|
+ // i.IndustrialName,
|
|
|
+ // o.Title,
|
|
|
+ // o.No,
|
|
|
+ // o.AcceptType,
|
|
|
+ // o.AcceptTypeCode,
|
|
|
+ // o.HotspotId,
|
|
|
+ // o.HotspotName,
|
|
|
+ // o.HotspotSpliceName,
|
|
|
+ // o.HotspotExternal,
|
|
|
+ // o.CreationTime,
|
|
|
+ // o.StartTime,
|
|
|
+ // o.OrgLevelOneCode,
|
|
|
+ // o.OrgLevelOneName,
|
|
|
+ // o.ActualHandleOrgName,
|
|
|
+ // o.ActualHandleOrgCode,
|
|
|
+ // o.CounterSignType,
|
|
|
+ // o.FiledTime,
|
|
|
+ // o.ExpiredTime,
|
|
|
+ // o.NearlyExpiredTime,
|
|
|
+ // o.NearlyExpiredTimeOne
|
|
|
+ // })
|
|
|
+ // .Select((i, io, s, o) => new IndustrialManagementOrderDto
|
|
|
+ // {
|
|
|
+
|
|
|
+ // Id = o.Id,
|
|
|
+ // Status = o.Status,
|
|
|
+ // IndustrialId = i.Id,
|
|
|
+ // IndustrialName = i.IndustrialName,
|
|
|
+ // Title = o.Title,
|
|
|
+ // No = o.No,
|
|
|
+ // AcceptType = o.AcceptType,
|
|
|
+ // AcceptTypeCode = o.AcceptTypeCode,
|
|
|
+ // HotspotId = o.HotspotId,
|
|
|
+ // HotspotName = o.HotspotName,
|
|
|
+ // HotspotSpliceName = o.HotspotSpliceName,
|
|
|
+ // HotspotExternal = o.HotspotExternal,
|
|
|
+ // CreationTime = o.CreationTime,
|
|
|
+ // StartTime = o.StartTime,
|
|
|
+ // OrgLevelOneCode = o.OrgLevelOneCode,
|
|
|
+ // OrgLevelOneName = o.OrgLevelOneName,
|
|
|
+ // ActualHandleOrgName = o.ActualHandleOrgName,
|
|
|
+ // ActualHandleOrgCode = o.ActualHandleOrgCode,
|
|
|
+ // CounterSignType = o.CounterSignType,
|
|
|
+ // FiledTime = o.FiledTime,
|
|
|
+ // ExpiredTime = o.ExpiredTime,
|
|
|
+ // NearlyExpiredTime = o.NearlyExpiredTime,
|
|
|
+ // NearlyExpiredTimeOne = o.NearlyExpiredTimeOne
|
|
|
+ // }).MergeTable()
|
|
|
+ // .WhereIF(!string.IsNullOrEmpty(dto.IndustrialName), d => d.IndustrialName.Contains(dto.IndustrialName))
|
|
|
+ // .WhereIF(!string.IsNullOrEmpty(dto.Title), d => d.Title.Contains(dto.Title))
|
|
|
+ // .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No.Contains(dto.No))
|
|
|
+ // .WhereIF(!string.IsNullOrEmpty(dto.AcceptTypeCode), d => d.AcceptTypeCode == dto.AcceptTypeCode)
|
|
|
+ // .WhereIF(dto.StartTime.HasValue, d => d.CreationTime >= dto.StartTime) //受理时间开始
|
|
|
+ // .WhereIF(dto.EndTime.HasValue, d => d.CreationTime <= dto.EndTime) //受理时间结束
|
|
|
+ // .WhereIF(!string.IsNullOrEmpty(dto.HotspotSpliceName), d => d.HotspotSpliceName.Contains(dto.HotspotSpliceName))
|
|
|
+ // .WhereIF(!string.IsNullOrEmpty(dto.OrgLevelOneName), d => d.OrgLevelOneName.Contains(dto.OrgLevelOneName))
|
|
|
+ // .WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName), d => d.ActualHandleOrgName.Contains(dto.ActualHandleOrgName))
|
|
|
+ // .OrderByIF(string.IsNullOrEmpty(dto.SortField), d => d.CreationTime, OrderByType.Desc) //默认排序时间为创建时间
|
|
|
+ // .OrderByIF(dto is { SortField: "creationTime", SortRule: 0 }, d => d.CreationTime, OrderByType.Asc) //工单创建时间
|
|
|
+ // .OrderByIF(dto is { SortField: "creationTime", SortRule: 1 }, d => d.CreationTime, OrderByType.Desc) //工单创建时间降序
|
|
|
+ // ;
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
}
|