田爽 há 1 ano atrás
pai
commit
6b830928fb

+ 21 - 6
src/Hotline.Api/Controllers/WorkflowController.cs

@@ -20,9 +20,12 @@ using XF.Utility.EnumExtensions;
 using XF.Domain.Repository;
 using Hotline.Share.Dtos.FlowEngine.Workflow;
 using Hotline.Caching.Interfaces;
+using Hotline.File;
 using Hotline.Orders;
 using Hotline.Share.Dtos.Order;
 using Mapster;
+using Hotline.Repository.SqlSugar.File;
+using Hotline.Share.Dtos.File;
 
 namespace Hotline.Api.Controllers;
 
@@ -47,8 +50,9 @@ public class WorkflowController : BaseController
     private readonly ISessionContext _sessionContext;
     private readonly IMapper _mapper;
     private readonly ISystemDicDataCacheManager _systemDicDataCacheManager;
+    private readonly IFileRepository _fileRepository;
 
-    public WorkflowController(
+	public WorkflowController(
         IDefinitionDomainService definitionDomainService,
         IRepository<WorkflowDefinition> definitionRepository,
         IWorkflowApplication workflowApplication,
@@ -64,8 +68,9 @@ public class WorkflowController : BaseController
         IRepository<WorkflowCountersign> workflowCountersignRepository,
         ISessionContext sessionContext,
         IMapper mapper,
-        ISystemDicDataCacheManager systemDicDataCacheManager
-    )
+        ISystemDicDataCacheManager systemDicDataCacheManager,
+        IFileRepository fileRepository
+	)
     {
         _definitionDomainService = definitionDomainService;
         _definitionRepository = definitionRepository;
@@ -83,7 +88,9 @@ public class WorkflowController : BaseController
         _workflowTraceRepository = workflowTraceRepository;
         _workflowCountersignRepository = workflowCountersignRepository;
         _systemDicDataCacheManager = systemDicDataCacheManager;
-    }
+        _fileRepository = fileRepository;
+
+	}
 
     /// <summary>
     /// 分页查询最新版本号的模板
@@ -458,8 +465,16 @@ public class WorkflowController : BaseController
             .OrderBy(d => d.CreationTime)
             .ToTreeAsync(d => d.Traces, d => d.ParentId, null);
 
-        var a = _mapper.Map<WorkflowDto>(workflow);
-        return a;
+        var workflowDto = _mapper.Map<WorkflowDto>(workflow);
+        if (workflowDto.Traces.Any())
+        {
+	        foreach (var item in workflowDto.Traces)
+	        {
+                var files = await _fileRepository.Queryable().Where(x => x.FlowKey == item.StepId).ToListAsync();
+                if (files.Any()) item.Files = _mapper.Map<List<FileDto>>(files);
+			}
+        }
+        return workflowDto;
     }
 
     /// <summary>

+ 4 - 1
src/Hotline.Share/Dtos/FlowEngine/Workflow/WorkflowTraceDto.cs

@@ -1,4 +1,5 @@
 using System.ComponentModel;
+using Hotline.Share.Dtos.File;
 using Hotline.Share.Enums.FlowEngine;
 using XF.Utility.EnumExtensions;
 
@@ -33,7 +34,9 @@ public class WorkflowTraceDto : StepBasicDto
     /// </summary>
     public List<WorkflowTraceDto> Traces { get; set; }
 
-    public ExpiredStatus ExpiredStatus
+    public List<FileDto>? Files { get; set; }
+
+	public ExpiredStatus ExpiredStatus
     {
         get
         {