tangjiang 11 months ago
parent
commit
7508ac9175
1 changed files with 66 additions and 66 deletions
  1. 66 66
      src/Hotline.Api/Controllers/Bi/BiOrderController.cs

+ 66 - 66
src/Hotline.Api/Controllers/Bi/BiOrderController.cs

@@ -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)