浏览代码

会签件导出

田爽 5 月之前
父节点
当前提交
a1295fc1cc
共有 1 个文件被更改,包括 32 次插入15 次删除
  1. 32 15
      src/Hotline.Api/Controllers/WorkflowController.cs

+ 32 - 15
src/Hotline.Api/Controllers/WorkflowController.cs

@@ -583,24 +583,41 @@ public class WorkflowController : BaseController
     public async Task<FileStreamResult> ScreenListExport([FromBody] ExportExcelDto<QueryOrderCountersignDto> dto)
     {
 	    var query = _workflowApplication.QueryOrderCountersigns(dto.QueryDto, _sessionContext)
-		    .MergeTable();
+			 .Select((c, w, o) => new { c, o });
 	    List<WorkflowCountersign> data;
-	    if (dto.IsExportAll)
+	    List<WorkflowCountersignDto> dataDtos;
+
+		if (dto.IsExportAll)
 	    {
-		    data = await query.ToListAsync(HttpContext.RequestAborted);
-	    }
+		    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();
+
+		}
 	    else
-	    {
-		    var (_, items) = await query.ToPagedListAsync(dto.QueryDto, HttpContext.RequestAborted);
-		    data = items;
-	    }
-
-	    var dataDtos = _mapper.Map<ICollection<WorkflowCountersignDto>>(data);
-
-	    dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
-
-	    var dtos = dataDtos
-		    .Select(stu => _mapper.Map(stu, typeof(WorkflowCountersignDto), dynamicClass))
+		{
+			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 exportData = _mapper.Map<ICollection<WorkflowCountersignDto>>(dataDtos);
+
+        dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
+
+	    var dtos = exportData
+			.Select(stu => _mapper.Map(stu, typeof(WorkflowCountersignDto), dynamicClass))
 		    .Cast<object>()
 		    .ToList();