田爽 5 hónapja
szülő
commit
fa19e3d602

+ 11 - 22
src/Hotline.Api/Controllers/WorkflowController.cs

@@ -583,40 +583,29 @@ public class WorkflowController : BaseController
     public async Task<FileStreamResult> ScreenListExport([FromBody] ExportExcelDto<QueryOrderCountersignDto> dto)
     {
 	    var query = _workflowApplication.QueryOrderCountersigns(dto.QueryDto, _sessionContext)
-			 .Select((c, w, o) => new { c, o });
+			 .Select((c, w, o) => new WorkflowCountersign()
+			 {
+                Id  = c.Id.SelectAll(),
+                Order = o,
+			 });
 	    List<WorkflowCountersign> data;
-	    List<WorkflowCountersignDto> dataDtos;
 
 		if (dto.IsExportAll)
 	    {
-		    var list = await query.ToListAsync(HttpContext.RequestAborted);
-		    dataDtos= list.Select(d =>
-		    {
-			    var dto = _mapper.Map<WorkflowCountersignDto>(d.c);
-			    dto.Order = _mapper.Map<OrderDto>(d.o);
-			    dto.CounterSignCount = _workflowCountersignRepository.Queryable().Where(p => p.WorkflowId == d.c.WorkflowId).CountAsync().GetAwaiter().GetResult();
-			    return dto;
-			}).ToList();
-
+		    data = await query.ToListAsync(HttpContext.RequestAborted);
 		}
 	    else
 		{
-			RefAsync<int> total = 0;
-			var items = await query.ToPageListAsync(dto.QueryDto.PageIndex, dto.QueryDto.PageSize, total, HttpContext.RequestAborted);
-			dataDtos = items.Select(d =>
-			{
-				var dto = _mapper.Map<WorkflowCountersignDto>(d.c);
-				dto.Order = _mapper.Map<OrderDto>(d.o);
-				dto.CounterSignCount = _workflowCountersignRepository.Queryable().Where(p => p.WorkflowId == d.c.WorkflowId).CountAsync().GetAwaiter().GetResult();
-				return dto;
-			}).ToList();
+
+			var (_, items) = await query.ToPagedListAsync(dto.QueryDto, HttpContext.RequestAborted);
+			data = items;
 		}
 
-        var exportData = _mapper.Map<ICollection<WorkflowCountersignDto>>(dataDtos);
+        var dataDtos = _mapper.Map<ICollection<WorkflowCountersignDto>>(data);
 
         dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
 
-	    var dtos = exportData
+	    var dtos = dataDtos
 			.Select(stu => _mapper.Map(stu, typeof(WorkflowCountersignDto), dynamicClass))
 		    .Cast<object>()
 		    .ToList();

+ 9 - 6
src/Hotline/FlowEngine/Workflows/WorkflowCountersign.cs

@@ -1,4 +1,5 @@
-using Hotline.Share.Dtos.FlowEngine.Workflow;
+using Hotline.Orders;
+using Hotline.Share.Dtos.FlowEngine.Workflow;
 using Hotline.Share.Enums.FlowEngine;
 using SqlSugar;
 using XF.Domain.Entities;
@@ -137,12 +138,14 @@ namespace Hotline.FlowEngine.Workflows
         [SugarColumn(IsIgnore = true)]
         public List<WorkflowCountersign> Children { get; set; }
 
-        #region method
+        public Order Order { get; set; }
 
-        /// <summary>
-        /// 会签是否完成(如有嵌套会签,表示下级所有会签都完成了)
-        /// </summary>
-        public bool IsCompleted() => EndTime.HasValue;
+		#region method
+
+		/// <summary>
+		/// 会签是否完成(如有嵌套会签,表示下级所有会签都完成了)
+		/// </summary>
+		public bool IsCompleted() => EndTime.HasValue;
 
         /// <summary>
         /// 结束会签(需提前确认所有子集都已结束)