tangjiang 4 months ago
parent
commit
02acfb95a6
1 changed files with 68 additions and 0 deletions
  1. 68 0
      src/Hotline.Api/Controllers/OrderController.cs

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

@@ -306,6 +306,40 @@ public class OrderController : BaseController
         return await _orderApplication.GetPublishOrderList(dto).CountAsync(HttpContext.RequestAborted);
     }
 
+    /// <summary>
+    /// 发布代办数据--导出
+    /// </summary>
+    /// <param name="dto"></param>
+    /// <returns></returns>
+    [HttpPost("publishorder/export")]
+    public async Task<FileStreamResult> ExportPublishOrders([FromBody] ExportExcelDto<QueryOrderPublishDto> dto)
+    {
+        var query = _orderApplication.GetPublishOrderList(dto.QueryDto);
+        List<Order> orders;
+        if (dto.IsExportAll)
+        {
+            orders = await query.ToListAsync(HttpContext.RequestAborted);
+        }
+        else
+        {
+            var (_, items) = await query.ToPagedListAsync(dto.QueryDto, HttpContext.RequestAborted);
+            orders = items;
+        }
+
+        var orderDtos = _mapper.Map<ICollection<PublishDto>>(orders);
+
+        dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
+
+        var dtos = orderDtos
+            .Select(stu => _mapper.Map(stu, typeof(PublishDto), dynamicClass))
+            .Cast<object>()
+            .ToList();
+
+        var stream = ExcelHelper.CreateStream(dtos);
+
+        return ExcelStreamResult(stream, "发布代办数据");
+    }
+
     /// <summary>
     /// 查询(工单发布)
     /// </summary>
@@ -724,6 +758,40 @@ public class OrderController : BaseController
         return await _orderApplication.GetPublishedOrder(dto).CountAsync();
     }
 
+    /// <summary>
+    /// 发布列表数据--导出
+    /// </summary>
+    /// <param name="dto"></param>
+    /// <returns></returns>
+    [HttpPost("publishedorder/export")]
+    public async Task<FileStreamResult> ExportPublishedOrders([FromBody] ExportExcelDto<PublishedPagedRequest> dto)
+    {
+        var query = _orderApplication.GetPublishedOrder(dto.QueryDto);
+        List<OrderPublish> orders;
+        if (dto.IsExportAll)
+        {
+            orders = await query.ToListAsync(HttpContext.RequestAborted);
+        }
+        else
+        {
+            var (_, items) = await query.ToPagedListAsync(dto.QueryDto, HttpContext.RequestAborted);
+            orders = items;
+        }
+
+        var orderDtos = _mapper.Map<ICollection<PublishedDto>>(orders);
+
+        dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
+
+        var dtos = orderDtos
+            .Select(stu => _mapper.Map(stu, typeof(PublishedDto), dynamicClass))
+            .Cast<object>()
+            .ToList();
+
+        var stream = ExcelHelper.CreateStream(dtos);
+
+        return ExcelStreamResult(stream, "发布列表数据");
+    }
+
     /// <summary>
     /// 发布详情
     /// </summary>