瀏覽代碼

Merge branch 'test' of http://110.188.24.182:10023/Fengwo/hotline into test

田爽 4 月之前
父節點
當前提交
6ee72aa160

+ 21 - 2
src/Hotline.Api/Controllers/OrderController.cs

@@ -4308,6 +4308,23 @@ public class OrderController : BaseController
     //    return new PagedDto<OrderDto>(total, _mapper.Map<IReadOnlyList<OrderDto>>(items));
     //}
 
+    /// <summary>
+    /// 列表页面基础数据
+    /// </summary>
+    /// <returns></returns>
+    [HttpGet("waited/base-data")]
+    public async Task<object> WaitedBaseData()
+    {
+        var wfModule = await _workflowApplication.GetWorkflowModuleAsync(WorkflowModuleConsts.OrderHandle, HttpContext.RequestAborted);
+        var definition = wfModule.Definition;
+        var rsp = new
+        {
+            OrderStatusOptions = EnumExts.GetDescriptions<EOrderStatus>(),
+            CurrentStepOptions = definition?.Steps.Select(x => new Kv(x.Code, x.Name))
+        };
+        return rsp;
+    }
+
     /// <summary>
     /// 工单待办
     /// </summary>
@@ -4333,11 +4350,13 @@ public class OrderController : BaseController
     /// 查询坐席待办
     /// </summary>
     [HttpGet("waited/sign")]
-    public async Task<List<OrderListOutDto>> QueryWaitedForSeat([FromQuery] QueryOrderWaitedDto dto)
+    public async Task<IReadOnlyList<OrderListOutDto>> QueryWaitedForSeat([FromQuery] QueryOrderWaitedDto dto)
     {
-        return await _orderApplication
+        var orders = await _orderApplication
             .QueryWaitedForSeat(dto)
             .ToPageListWithoutTotalAsync(dto, HttpContext.RequestAborted);
+
+        return _mapper.Map<IReadOnlyList<OrderListOutDto>>(orders);
     }
 
     [HttpGet("waited/sign/count")]

+ 20 - 0
src/Hotline.Api/Controllers/WebPortalController.cs

@@ -1143,6 +1143,26 @@ namespace Hotline.Api.Controllers
           .FirstAsync();
             return OpenResponse.Ok(WebPortalDeResponse<GetStatistDto>.Success(getStatistDto));
         }
+
+        /// <summary>
+        /// 获取统计数据 今日数据
+        /// </summary>
+        /// <returns></returns>
+        [AllowAnonymous]
+        [HttpPost("todaygetstatist")]
+        public async Task<OpenResponse> GetTodayStatist()
+        {
+            var startDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 00:00:00"));
+            var endDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 23:59:59"));
+            var getStatistDto = await _orderRepository.Queryable()
+          .Select(p => new GetStatistDto
+          {
+              DayCount = SqlFunc.AggregateSum(SqlFunc.IIF(p.CreationTime >= startDate && p.CreationTime <= endDate && p.Status > EOrderStatus.WaitForAccept, 1, 0)),
+              DayTrandCount = SqlFunc.AggregateSum(SqlFunc.IIF(p.CreationTime >= startDate && p.CreationTime <= endDate && p.FiledTime >= startDate && p.FiledTime <= endDate && p.Status >= EOrderStatus.Filed, 1, 0)),
+          })
+          .FirstAsync();
+            return OpenResponse.Ok(WebPortalDeResponse<GetStatistDto>.Success(getStatistDto));
+        }
         #endregion
 
         #region 评价

+ 1 - 1
src/Hotline.Application/Orders/IOrderApplication.cs

@@ -330,7 +330,7 @@ namespace Hotline.Application.Orders
         ISugarQueryable<OrderVisitDetail> MayScreenList(MayScreenListDto dto);
 
 
-		ISugarQueryable<OrderListOutDto> QueryWaitedForSeat(QueryOrderWaitedDto dto);
+		ISugarQueryable<Order> QueryWaitedForSeat(QueryOrderWaitedDto dto);
 
 
 		ISugarQueryable<Order> QueryWaited(QueryOrderWaitedDto dto);

+ 13 - 11
src/Hotline.Application/Orders/OrderApplication.cs

@@ -989,7 +989,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             {
                 throw new UserFriendlyException("暂不支持该方案");
             }
-           
+
             var canUpdateOrderSender = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.CanUpdateOrderSender).SettingValue[0]);
             order.CenterToOrg(
                 expiredTimeConfig.TimeText, expiredTimeConfig.Count,
@@ -1335,8 +1335,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
              d => d.Title.Contains(dto.ContentRetrieval) || d.Content.Contains(dto.ContentRetrieval) || d.FileOpinion.Contains(dto.ContentRetrieval) || d.ActualOpinion.Contains(dto.ContentRetrieval))
          .WhereIF(dto.IsSgin.HasValue && dto.IsSgin == true, d => d.CurrentStepAcceptTime != null)
          .WhereIF(dto.IsSgin.HasValue && dto.IsSgin == false, d => d.CurrentStepAcceptTime == null)
-         .WhereIF(dto.FiledType is FiledType.CenterFiled, d => d.ProcessType == EProcessType.Zhiban)
-         .WhereIF(dto.FiledType is FiledType.OrgFiled, d => d.ProcessType == EProcessType.Jiaoban)
+         .WhereIF(dto.FiledType is FiledType.CenterFiled, d => d.FileOrgIsCenter == true)//d => d.ProcessType == EProcessType.Zhiban
+         .WhereIF(dto.FiledType is FiledType.OrgFiled, d => d.FileOrgIsCenter == false)//d => d.ProcessType == EProcessType.Jiaoban
          .WhereIF(!string.IsNullOrEmpty(dto.OrderTagCode), d => d.OrderTagCode == dto.OrderTagCode)
          .WhereIF(!string.IsNullOrEmpty(dto.FocusOnEvents), d => SqlFunc.SplitIn(d.FocusOnEvents, dto.FocusOnEvents))
          .OrderByIF(string.IsNullOrEmpty(dto.SortField), d => d.CreationTime, OrderByType.Desc)//默认排序时间为创建时间
@@ -1798,7 +1798,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             .WhereIF(dto.TypeCode != null && dto.TypeCode == 1, (x, it) => it.OrderVisit.Order.IdentityType == EIdentityType.Citizen)
             .WhereIF(dto.TypeCode != null && dto.TypeCode == 2, (x, it) => it.OrderVisit.Order.IdentityType == EIdentityType.Enterprise)
             .WhereIF(IsCenter == false, (x, it) => it.VisitOrgCode.StartsWith(_sessionContextProvider.SessionContext.OrgId))
-            .WhereIF(dto.VisitType !=null, (x,it)=> it.OrderVisit.VisitType==dto.VisitType)
+            .WhereIF(dto.VisitType != null, (x, it) => it.OrderVisit.VisitType == dto.VisitType)
             .GroupBy((x, it) => new
             {
                 VisitOrgCode = it.VisitOrgCode
@@ -3185,7 +3185,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             .OrderByDescending(d => d.CreationTime);
     }
 
-    public ISugarQueryable<OrderListOutDto> QueryWaitedForSeat(QueryOrderWaitedDto dto)
+    public ISugarQueryable<Order> QueryWaitedForSeat(QueryOrderWaitedDto dto)
     {
         EOrderStatus[] handleStatuses = EnumExts.GetFields<EOrderStatus>().Select(d => (EOrderStatus)d.Key).ToArray();
         handleStatuses = handleStatuses.WhereIF(dto.IsHandled.HasValue,
@@ -3279,7 +3279,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             .OrderByIF(dto is { SortField: "startTime", SortRule: 1 }, d => d.StartTime, OrderByType.Desc) //受理时间降序
             .OrderByIF(dto is { SortField: "expiredTime", SortRule: 0 }, d => d.ExpiredTime, OrderByType.Asc) //期满时间升序
             .OrderByIF(dto is { SortField: "expiredTime", SortRule: 1 }, d => d.ExpiredTime, OrderByType.Desc) //期满时间降序
-            .Select<OrderListOutDto>();
+        ;
+        return query;
     }
 
     public ISugarQueryable<Order> QueryWaited(QueryOrderWaitedDto dto)
@@ -3355,13 +3356,14 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             .Where(d => d.Status != EOrderStatus.BackToProvince)
             //.WhereIF(!hasHandled, d => d.Status < EOrderStatus.Filed)
             .WhereIF(!hasHandled || _appOptions.Value.IsYiBin, d => d.Status < EOrderStatus.Filed)
-			//.Where(d => SqlFunc.Subqueryable<OrderSpecial>().Where(os => os.OrderId == d.Id).NotAny())
-			//.Where(d => d.OrderSpecials.Any() == false || d.OrderSpecials.Any(s => s.State > 0))
-			.WhereIF(dto.StartTime.HasValue, d => d.StartTime >= dto.StartTime)
+            //.Where(d => SqlFunc.Subqueryable<OrderSpecial>().Where(os => os.OrderId == d.Id).NotAny())
+            //.Where(d => d.OrderSpecials.Any() == false || d.OrderSpecials.Any(s => s.State > 0))
+            .WhereIF(dto.StartTime.HasValue, d => d.StartTime >= dto.StartTime)
             .WhereIF(dto.EndTime.HasValue, d => d.StartTime <= dto.EndTime)
             .WhereIF(dto.IsUrgent.HasValue, d => d.IsUrgent == dto.IsUrgent!.Value)
-            .WhereIF(dto.Status.HasValue, d => d.Status == dto.Status)
-            //.OrderByDescending(d => d.IsUrgent)
+            .WhereIF(dto.Status.HasValue, d => d.Status == dto.Status) //工单状态
+           .WhereIF(!string.IsNullOrEmpty(dto.CurrentStepCode), d => d.CurrentStepCode == dto.CurrentStepCode) //当前办理节点
+                                                                                                               //.OrderByDescending(d => d.IsUrgent)
             .OrderByIF(string.IsNullOrEmpty(dto.SortField), d => d.StartTime, 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) //创建时间降序

+ 5 - 0
src/Hotline.Share/Dtos/Order/OrderWaitedDto.cs

@@ -83,6 +83,11 @@ namespace Hotline.Share.Dtos.Order
         /// </summary>
         public string? AcceptorName { get; set; }
 
+        /// <summary>
+        /// 当前办理节点
+        /// </summary>
+        public string? CurrentStepCode { get; set; }
+
     }
 
     /// <summary>