Browse Source

27 派单员角色的工单待办新增选项卡

田爽 6 tháng trước cách đây
mục cha
commit
214f8d4838

+ 13 - 4
src/Hotline.Api/Controllers/OrderController.cs

@@ -65,6 +65,7 @@ using XF.Domain.Repository;
 using XF.Utility.EnumExtensions;
 using Hotline.Application.Contracts.Validators.FlowEngine;
 using Hotline.Authentications;
+using Microsoft.AspNetCore.Components;
 
 namespace Hotline.Api.Controllers;
 
@@ -3967,14 +3968,22 @@ public class OrderController : BaseController
         var isHandled = dto.IsHandled.HasValue && dto.IsHandled.Value;
 
         var isAdmin = _orderDomainService.IsCheckAdmin();
-
-        var (total, items) = await _orderRepository
+        var query = _orderRepository
             .Queryable(hasHandled: isHandled, isAdmin: isAdmin)
-            .Includes(d => d.OrderSpecials)
-            .Where(d => d.Status != EOrderStatus.WaitForAccept &&
+            .Includes(d => d.OrderSpecials);
+        if ((dto.CenterHandle.HasValue && dto.CenterHandle) || (dto.Forwarded.HasValue && dto.Forwarded))
+        {
+            query.WhereIF(dto.CenterHandle.HasValue && dto.CenterHandle, d => d.IsForwarded == false)
+	            .WhereIF(dto.Forwarded.HasValue && dto.Forwarded, d => d.IsForwarded == true)
+				.Where(d=>SqlFunc.Subqueryable<OrderSpecial>().Where(os=>os.OrderId == d.Id && os.SpecialType == ESpecialType.ReTransact).NotAny());
+        }
+
+		var (total, items) = await query
+			.Where(d => d.Status != EOrderStatus.WaitForAccept &&
                         d.Status != EOrderStatus.BackToUnAccept &&
                         d.Status != EOrderStatus.SpecialToUnAccept &&
                         d.Status != EOrderStatus.HandOverToUnAccept)
+		    .WhereIF(dto.Redistribute.HasValue && dto.Redistribute, d => SqlFunc.Subqueryable<OrderSpecial>().Where(os => os.OrderId == d.Id && os.SpecialType == ESpecialType.ReTransact).Any());
             .WhereIF(dto.IsProvince.HasValue, d => d.IsProvince == dto.IsProvince)
             .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.StartsWith(dto.Keyword))
             .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No == dto.No)

+ 16 - 1
src/Hotline.Share/Dtos/Order/OrderWaitedDto.cs

@@ -62,7 +62,22 @@ namespace Hotline.Share.Dtos.Order
         /// 2: 直办件
         /// </summary>
         public int? TypeCode { get; set; }
-    }
+
+        /// <summary>
+        /// 中心办理
+        /// </summary>
+        public bool? CenterHandle { get; set; }
+
+        /// <summary>
+        /// 转单件
+        /// </summary>
+        public bool? Forwarded { get; set; }
+
+        /// <summary>
+        /// 二次派发件
+        /// </summary>
+        public bool? Redistribute { get; set; }
+	}
 
     /// <summary>
     /// 中心待办