田爽 1 年間 前
コミット
b63ee770a3

+ 1 - 0
src/Hotline.Api/Controllers/OrderController.cs

@@ -2396,6 +2396,7 @@ public class OrderController : BaseController
             .FirstAsync(x => x.Id == id);
     }
 	#endregion
+
 	#region 超期查询
 	/// <summary>
 	/// 工单超期列表

+ 6 - 15
src/Hotline.Repository.SqlSugar/Orders/OrderRepository.cs

@@ -140,15 +140,6 @@ namespace Hotline.Repository.SqlSugar.Orders
         public async Task<PagedDto<OrderDto>> GetToExpireAsync(AboutToExpireListDto dto, CancellationToken cancellationToken)
         {
             DateTime stTime = _timeLimitDomainService.WorkDay(DateTime.Now);
-           var sql =  Db.Queryable<Order>()
-                .WhereIF(dto.IsProvince.HasValue, x => x.IsProvince == dto.IsProvince)
-                .WhereIF(!string.IsNullOrEmpty(dto.Keyword), x => x.Title.Contains(dto.Keyword!) || x.No.Contains(dto.Keyword!))
-                //.WhereIF(!string.IsNullOrEmpty(dto.No), x => x.No == dto.No)
-                //.WhereIF(!string.IsNullOrEmpty(dto.Title), x => x.Title.Contains(dto.Title!))
-                .Where(x => x.ExpiredTime != null &&
-                            (((x.Status == EOrderStatus.Filed || x.Status == EOrderStatus.Published || x.Status == EOrderStatus.Visited) && x.FiledTime > x.ExpiredTime) ||
-                             ((x.Status != EOrderStatus.Filed && x.Status != EOrderStatus.Published && x.Status != EOrderStatus.Visited) && stTime > x.ExpiredTime.Value)))
-                .OrderByDescending(x => x.CreationTime).ToSql();
 			var (total, items) = await Db.Queryable<Order>()
 		        .WhereIF(dto.IsProvince.HasValue, x => x.IsProvince == dto.IsProvince)
 		        .WhereIF(!string.IsNullOrEmpty(dto.Keyword), x => x.Title.Contains(dto.Keyword!) || x.No.Contains(dto.Keyword!))
@@ -173,12 +164,12 @@ namespace Hotline.Repository.SqlSugar.Orders
 	        DateTime stTime = _timeLimitDomainService.WorkDay(DateTime.Now);
 			RefAsync<int> total = 0;
 			var  items= await Db.Queryable<Workflow>()
-                .LeftJoin<Order>((w,o)=>w.ExternalId == o.Id)
-                .Where(x => x.ModuleName == "OrderHandle")
-				.WhereIF(dto.IsProvince.HasValue, (x,o) => o.IsProvince == dto.IsProvince)
-		        .WhereIF(!string.IsNullOrEmpty(dto.Keyword), (x,o) => o.Title.Contains(dto.Keyword!) || o.No.Contains(dto.Keyword!))
-		        .Where(x => ((x.EndTime.HasValue && x.EndTime > x.ExpiredTime) || (!x.EndTime.HasValue && stTime > x.ExpiredTime)))
-                .Select((x,o)=> new WorkflowOrderDto { Order = _mapper.Map<OrderDto>(o) },true)
+                .LeftJoin<Order>((x,o)=>x.ExternalId == o.Id)
+                .Where(x => x.ModuleCode == "OrderHandle")
+                .WhereIF(dto.IsProvince.HasValue, (x, o) => o.IsProvince == dto.IsProvince)
+                .WhereIF(!string.IsNullOrEmpty(dto.Keyword), (x, o) => o.Title.Contains(dto.Keyword!) || o.No.Contains(dto.Keyword!))
+                .Where((x,o) => (((int)x.Status >= 20 && x.EndTime > x.ExpiredTime) || ((int)x.Status < 20 && stTime > x.ExpiredTime)))
+                .Select((x, o) => new WorkflowOrder { Order = o }, true)
                 .OrderByDescending(x => x.CreationTime)
                 .ToPageListAsync(dto.PageIndex, dto.PageSize, total, cancellationToken);
 	        return new PagedDto<WorkflowOrderDto>(total, _mapper.Map<IReadOnlyList<WorkflowOrderDto>>(items));

+ 5 - 0
src/Hotline/FlowEngine/Workflows/Workflow.cs

@@ -1,4 +1,5 @@
 using Hotline.FlowEngine.Definitions;
+using Hotline.Orders;
 using Hotline.Settings;
 using Hotline.Share.Dtos;
 using Hotline.Share.Enums.FlowEngine;
@@ -326,6 +327,10 @@ public partial class Workflow : CreationEntity
 
 }
 
+public partial class WorkflowOrder : Workflow
+{
+	public Order Order { get; set; }
+}
 public partial class Workflow
 {
     [Navigate(NavigateType.OneToOne, nameof(DefinitionId))]