|
@@ -92,27 +92,26 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
_workflowStepHandleRepository = workflowStepHandleRepository;
|
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 部门超期统计明细
|
|
|
- /// </summary>
|
|
|
- /// <param name="dto"></param>
|
|
|
- /// <returns></returns>
|
|
|
- [HttpGet("org_data_list_detail")]
|
|
|
- public async Task<PagedDto<OrderDto>> OrgDataListDetail([FromQuery] OrgDataListDetailRequest dto)
|
|
|
- {
|
|
|
- dto.EndTime = dto.EndTime.AddDays(1).AddSeconds(-1);
|
|
|
-
|
|
|
- var quer = _orderRepository.Queryable()
|
|
|
- .Where(x => x.CreationTime >= dto.StartTime && x.CreationTime <= dto.EndTime)
|
|
|
- .WhereIF(dto.QueryType == 1, x => x.Status >= EOrderStatus.Filed && x.ExpiredTime < x.FiledTime) //业务已办超期
|
|
|
- .WhereIF(dto.QueryType == 3, x => x.Status < EOrderStatus.Filed && x.ExpiredTime < SqlFunc.GetDate()) //业务待办超期
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.OrgCode) && dto.QueryType is 1 or 3, x => x.ActualHandleOrgCode == dto.OrgCode)
|
|
|
+ /// <summary>
|
|
|
+ /// 部门超期统计明细
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("org_data_list_detail")]
|
|
|
+ public async Task<PagedDto<OrderDto>> OrgDataListDetail([FromQuery] OrgDataListDetailRequest dto)
|
|
|
+ {
|
|
|
+ dto.EndTime = dto.EndTime.AddDays(1).AddSeconds(-1);
|
|
|
+
|
|
|
+ var quer = _orderRepository.Queryable()
|
|
|
+ .Where(x => x.CreationTime >= dto.StartTime && x.CreationTime <= dto.EndTime)
|
|
|
+ .WhereIF(dto.QueryType == 1, x => x.Status >= EOrderStatus.Filed && x.ExpiredTime < x.FiledTime) //业务已办超期
|
|
|
+ .WhereIF(dto.QueryType == 3, x => x.Status < EOrderStatus.Filed && x.ExpiredTime < SqlFunc.GetDate()) //业务待办超期
|
|
|
.WhereIF(dto.QueryType == 5, x =>
|
|
|
(x.Status >= EOrderStatus.Filed && x.ExpiredTime < x.FiledTime) || (x.Status < EOrderStatus.Filed && x.ExpiredTime < SqlFunc.GetDate()))
|
|
|
- ;
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.OrgCode) && dto.QueryType is 1 or 3, x => x.ActualHandleOrgCode == dto.OrgCode);
|
|
|
|
|
|
- if (dto.QueryType is 2 or 4 or 5)
|
|
|
- {
|
|
|
+ if (dto.QueryType is 2 or 4 or 5)
|
|
|
+ {
|
|
|
var queryCountersign = _workflowCountersignRepository.Queryable()
|
|
|
.LeftJoin<WorkflowCountersignMember>((x, o) => x.Id == o.WorkflowCountersignId)
|
|
|
.Where((x, o) => x.CreationTime >= dto.StartTime && x.CreationTime <= dto.EndTime)
|
|
@@ -120,23 +119,24 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
.WhereIF(dto.QueryType == 4, (x, o) => o.IsHandled == false) //会签待办超期
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.OrgCode) && dto.QueryType is 2 or 4 or 5, (x, o) => o.Key == dto.OrgCode)
|
|
|
//.GroupBy((x,o)=>x.WorkflowId)
|
|
|
- .Select((x,o)=> new { Id= x.WorkflowId })
|
|
|
+ .Select((x, o) => new { Id = x.WorkflowId })
|
|
|
.MergeTable();
|
|
|
- quer = quer.InnerJoin(queryCountersign, (x, c) => x.WorkflowId == c.Id);
|
|
|
- }
|
|
|
|
|
|
- var (total, items) = await quer.ToPagedListAsync(dto.PageIndex, dto.PageSize);
|
|
|
+ quer = quer.InnerJoin(queryCountersign, (x, c) => x.WorkflowId == c.Id);
|
|
|
|
|
|
- return new PagedDto<OrderDto>(total, _mapper.Map<IReadOnlyList<OrderDto>>(items));
|
|
|
- }
|
|
|
+ }
|
|
|
+ var (total, items) = await quer.ToPagedListAsync(dto.PageIndex, dto.PageSize);
|
|
|
+
|
|
|
+ return new PagedDto<OrderDto>(total, _mapper.Map<IReadOnlyList<OrderDto>>(items));
|
|
|
+ }
|
|
|
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 部门超期统计
|
|
|
- /// </summary>
|
|
|
- /// <param name="dto"></param>
|
|
|
- /// <returns></returns>
|
|
|
- [HttpGet("org_data_list")]
|
|
|
+ /// <summary>
|
|
|
+ /// 部门超期统计
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("org_data_list")]
|
|
|
public async Task<PagedDto<OrderBiOrgDataListVo>> OrgDataList([FromQuery] ReportPagedRequest dto)
|
|
|
{
|
|
|
if (!dto.StartTime.HasValue || !dto.EndTime.HasValue) throw UserFriendlyException.SameMessage("请选择时间!");
|
|
@@ -227,8 +227,8 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
UserId = it.SignerId,
|
|
|
//Subtotal = SqlFunc.AggregateCount(x.AcceptorId),
|
|
|
CentreArchive = SqlFunc.AggregateSum(SqlFunc.IIF(it.Status >= EOrderStatus.Filed && it.ProcessType == EProcessType.Zhiban, 1, 0)), //中心归档件
|
|
|
- CentreCareOf = SqlFunc.AggregateSum(SqlFunc.IIF(it.Status>= EOrderStatus.Filed && (it.FileUserRole == EFileUserType.Org || it.FileUserRole == EFileUserType.Dispatch), 1, 0)), //转办信件
|
|
|
- NoCentreCareOf = SqlFunc.AggregateSum(SqlFunc.IIF(it.Status>= EOrderStatus.WaitForAccept && it.Status< EOrderStatus.Filed && (it.FileUserRole == EFileUserType.Dispatch || it.ActualHandleStepName=="班长审批"),1,0)),
|
|
|
+ CentreCareOf = SqlFunc.AggregateSum(SqlFunc.IIF(it.Status >= EOrderStatus.Filed && (it.FileUserRole == EFileUserType.Org || it.FileUserRole == EFileUserType.Dispatch), 1, 0)), //转办信件
|
|
|
+ NoCentreCareOf = SqlFunc.AggregateSum(SqlFunc.IIF(it.Status >= EOrderStatus.WaitForAccept && it.Status < EOrderStatus.Filed && (it.FileUserRole == EFileUserType.Dispatch || it.ActualHandleStepName == "班长审批"), 1, 0)),
|
|
|
//CentreCareOf = SqlFunc.AggregateSum(SqlFunc.IIF(it.Status >= EOrderStatus.Filed && it.ProcessType == EProcessType.Jiaoban, 1, 0)),
|
|
|
//NoCentreCareOf = SqlFunc.AggregateSum(SqlFunc.IIF((int)x.Status < 300 && x.ExpiredTime > x.FiledTime, 1, 0)),
|
|
|
Invalid = SqlFunc.AggregateSum(SqlFunc.IIF(it.AcceptType == "无效", 1, 0)),
|
|
@@ -509,38 +509,38 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 部门延期统计明细
|
|
|
- /// </summary>
|
|
|
- /// <param name="dto"></param>
|
|
|
- /// <returns></returns>
|
|
|
- [HttpGet("order-delay-data-detail")]
|
|
|
+ /// <summary>
|
|
|
+ /// 部门延期统计明细
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("order-delay-data-detail")]
|
|
|
public async Task<PagedDto<OrderDelayDto>> QueryOrderDelayDataDetail([FromQuery] QueryOrderDelayDataDetailRequest dto)
|
|
|
{
|
|
|
- if (!dto.StartTime.HasValue || !dto.EndTime.HasValue) throw UserFriendlyException.SameMessage("请选择时间!");
|
|
|
+ if (!dto.StartTime.HasValue || !dto.EndTime.HasValue) throw UserFriendlyException.SameMessage("请选择时间!");
|
|
|
|
|
|
- dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
+ dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
|
|
|
- var (total, items) = await _orderDelayRepository.Queryable()
|
|
|
- .Includes(x=>x.Order)
|
|
|
- .WhereIF(dto.StartTime.HasValue, x => x.CreationTime >= dto.StartTime)
|
|
|
- .WhereIF(dto.EndTime.HasValue, x => x.CreationTime <= dto.EndTime)
|
|
|
- .WhereIF(!string.IsNullOrEmpty(dto.OrgCode), x => x.ApplyOrgCode == dto.OrgCode)
|
|
|
- .WhereIF(dto.Type is 1, x=> x.DelayState == EDelayState.Pass)
|
|
|
+ var (total, items) = await _orderDelayRepository.Queryable()
|
|
|
+ .Includes(x => x.Order)
|
|
|
+ .WhereIF(dto.StartTime.HasValue, x => x.CreationTime >= dto.StartTime)
|
|
|
+ .WhereIF(dto.EndTime.HasValue, x => x.CreationTime <= dto.EndTime)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.OrgCode), x => x.ApplyOrgCode == dto.OrgCode)
|
|
|
+ .WhereIF(dto.Type is 1, x => x.DelayState == EDelayState.Pass)
|
|
|
.WhereIF(dto.Type is 2, x => x.DelayState == EDelayState.NoPass)
|
|
|
.WhereIF(dto.Type is 3, x => x.DelayState == EDelayState.Examining)
|
|
|
.WhereIF(dto.Type is 4, x => x.DelayState < EDelayState.Withdraw)
|
|
|
.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
|
|
|
|
|
|
- return new PagedDto<OrderDelayDto>(total, _mapper.Map<IReadOnlyList<OrderDelayDto>>(items));
|
|
|
- }
|
|
|
+ return new PagedDto<OrderDelayDto>(total, _mapper.Map<IReadOnlyList<OrderDelayDto>>(items));
|
|
|
+ }
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 特提统计
|
|
|
- /// </summary>
|
|
|
- /// <param name="dto"></param>
|
|
|
- /// <returns></returns>
|
|
|
- [HttpGet("special_data_list")]
|
|
|
+ /// <summary>
|
|
|
+ /// 特提统计
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("special_data_list")]
|
|
|
public async Task<PagedDto<OrderBiSpecialListVo>> SpecialDataList([FromQuery] ReportPagedRequest dto)
|
|
|
{
|
|
|
if (!dto.StartTime.HasValue || !dto.EndTime.HasValue) throw UserFriendlyException.SameMessage("请选择时间!");
|
|
@@ -1560,7 +1560,7 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
PublishedNoOpen = 0,
|
|
|
YBOverdue = SqlFunc.AggregateSum(SqlFunc.IIF(it.Status >= EOrderStatus.Filed && it.ActualHandleTime > it.ExpiredTime, 1, 0)),//已办超期
|
|
|
ZBOverdue = SqlFunc.AggregateSum(SqlFunc.IIF(it.Status < EOrderStatus.Filed && it.ExpiredTime < SqlFunc.GetDate(), 1, 0)),//待办超期
|
|
|
- CompleteOnTime= SqlFunc.AggregateSum(SqlFunc.IIF(it.Status >= EOrderStatus.Filed && it.ActualHandleTime <= it.ExpiredTime, 1, 0)),//按时办结
|
|
|
+ CompleteOnTime = SqlFunc.AggregateSum(SqlFunc.IIF(it.Status >= EOrderStatus.Filed && it.ActualHandleTime <= it.ExpiredTime, 1, 0)),//按时办结
|
|
|
HQYBOverdue = 0,
|
|
|
HQZBOverdue = 0,
|
|
|
DelayEnd = 0,
|
|
@@ -1580,7 +1580,7 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
//发布
|
|
|
var queryPublish = _orderPublishRepository.Queryable()
|
|
|
.LeftJoin<Order>((x, o) => x.OrderId == o.Id)
|
|
|
- .Where((x, o) => x.CreationTime >= StartDate && x.CreationTime <= EndDate)
|
|
|
+ .Where((x, o) => x.CreationTime >= StartDate && x.CreationTime <= EndDate && o.Status >= EOrderStatus.Published)
|
|
|
.Select((x, o) => new
|
|
|
{
|
|
|
o.Id,
|
|
@@ -1667,7 +1667,7 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
#region 延期
|
|
|
//延期
|
|
|
var orderDelay = _orderDelayRepository.Queryable()
|
|
|
- .Where(x => x.CreationTime >= StartDate&& x.CreationTime <= EndDate)
|
|
|
+ .Where(x => x.CreationTime >= StartDate && x.CreationTime <= EndDate)
|
|
|
.Select(x => new
|
|
|
{
|
|
|
OrgCode = IsCenter == true ? x.ApplyOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6")) : x.ApplyOrgCode.Substring(0, _sessionContext.RequiredOrgId.Length + 3),
|
|
@@ -1708,7 +1708,7 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
#region 甄别
|
|
|
//甄别
|
|
|
var orderScreen = _orderScreenRepository.Queryable()
|
|
|
- .Where(x => x.CreationTime >= StartDate&& x.CreationTime <= EndDate)
|
|
|
+ .Where(x => x.CreationTime >= StartDate && x.CreationTime <= EndDate)
|
|
|
.WhereIF(!string.IsNullOrEmpty(OrgName), x => x.CreatorOrgId.Contains(OrgName))
|
|
|
.Select(x => new
|
|
|
{
|
|
@@ -1839,7 +1839,7 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
PublishedNoOpen = items.Sum(p => p.PublishedNoOpen),
|
|
|
YBOverdue = items.Sum(p => p.YBOverdue),
|
|
|
ZBOverdue = items.Sum(p => p.ZBOverdue),
|
|
|
- CompleteOnTime=items.Sum(p=>p.CompleteOnTime),
|
|
|
+ CompleteOnTime = items.Sum(p => p.CompleteOnTime),
|
|
|
HQYBOverdue = items.Sum(p => p.HQYBOverdue),
|
|
|
HQZBOverdue = items.Sum(p => p.HQZBOverdue),
|
|
|
DelayEnd = items.Sum(p => p.DelayEnd),
|
|
@@ -1947,7 +1947,7 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
PublishedNoOpen = SqlFunc.AggregateSum(SqlFunc.IIF(it.Status >= EOrderStatus.Published && !it.PublishState, 1, 0)),//已发布不公开
|
|
|
YBOverdue = 0,
|
|
|
ZBOverdue = 0,
|
|
|
- CompleteOnTime =0,
|
|
|
+ CompleteOnTime = 0,
|
|
|
HQYBOverdue = 0,
|
|
|
HQZBOverdue = 0,
|
|
|
DelayEnd = 0,
|
|
@@ -2011,7 +2011,7 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
#region 延期
|
|
|
//延期
|
|
|
var orderDelay = _orderDelayRepository.Queryable()
|
|
|
- .Where(x => x.CreationTime >= StartDate&& x.CreationTime <= EndDate)
|
|
|
+ .Where(x => x.CreationTime >= StartDate && x.CreationTime <= EndDate)
|
|
|
.WhereIF(OrgCode == "001", x => x.ApplyOrgCode == OrgCode)
|
|
|
.WhereIF(OrgCode != "001", x => x.ApplyOrgCode.StartsWith(OrgCode))
|
|
|
.Select(x => new
|
|
@@ -2053,7 +2053,7 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
#region 甄别
|
|
|
//甄别
|
|
|
var orderScreen = _orderScreenRepository.Queryable()
|
|
|
- .Where(x => x.CreationTime >= StartDate&& x.CreationTime <= EndDate)
|
|
|
+ .Where(x => x.CreationTime >= StartDate && x.CreationTime <= EndDate)
|
|
|
.WhereIF(!string.IsNullOrEmpty(OrgName), x => x.CreatorOrgId.Contains(OrgName))
|
|
|
.WhereIF(OrgCode == "001", x => x.CreatorOrgId == OrgCode)
|
|
|
.WhereIF(OrgCode != "001", x => x.CreatorOrgId.StartsWith(OrgCode))
|
|
@@ -2171,7 +2171,7 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
.WhereIF(string.IsNullOrEmpty(OrgName) == false, x => x.OrgName.Contains(OrgName))
|
|
|
.ToListAsync();
|
|
|
|
|
|
- //计算合计
|
|
|
+ //计算合计
|
|
|
var total = new DepartmentalProcessingStatisticsDataDto
|
|
|
{
|
|
|
OrgCode = "",
|
|
@@ -2187,7 +2187,7 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
PublishedNoOpen = items.Sum(p => p.PublishedNoOpen),
|
|
|
YBOverdue = items.Sum(p => p.YBOverdue),
|
|
|
ZBOverdue = items.Sum(p => p.ZBOverdue),
|
|
|
- CompleteOnTime =items.Sum(p=>p.CompleteOnTime),
|
|
|
+ CompleteOnTime = items.Sum(p => p.CompleteOnTime),
|
|
|
HQYBOverdue = items.Sum(p => p.HQYBOverdue),
|
|
|
HQZBOverdue = items.Sum(p => p.HQZBOverdue),
|
|
|
DelayEnd = items.Sum(p => p.DelayEnd),
|
|
@@ -2749,7 +2749,7 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
.Having((x, w, wfsh, su) => SqlFunc.AggregateCount(x.WorkflowId) > 1)
|
|
|
.Select((x, w, wfsh, su) => new { Id = x.WorkflowId })
|
|
|
.MergeTable()
|
|
|
- .LeftJoin<WorkflowTrace>((a, wt) => a.Id == wt.WorkflowId && wt.SendHandleTimes == 1)
|
|
|
+ .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)
|
|
|
.InnerJoin<SchedulingUser>((a, wt, wf, wsh, su) => wsh.UserId == su.UserId)
|
|
@@ -2821,7 +2821,7 @@ namespace Hotline.Api.Controllers.Bi
|
|
|
.Having((x, w, wfsh, su) => SqlFunc.AggregateCount(x.WorkflowId) > 1)
|
|
|
.Select((x, w, wfsh, su) => new { Id = x.WorkflowId })
|
|
|
.MergeTable()
|
|
|
- .LeftJoin<WorkflowTrace>((a, wt) => a.Id == wt.WorkflowId && wt.SendHandleTimes == 1)
|
|
|
+ .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)
|
|
|
.InnerJoin<SchedulingUser>((a, wt, wf, wsh, su) => wsh.UserId == su.UserId)
|