xf 4 ay önce
ebeveyn
işleme
705bb3f675

+ 9 - 6
src/Hotline.Api/Controllers/OrderController.cs

@@ -4037,7 +4037,8 @@ public class OrderController : BaseController
                 nextDto.StepId = startStep.Id;
                 nextDto.HandlerType = EHandlerType.OrgLevel;
                 nextDto.FlowDirection = EFlowDirection.CenterToOrg;
-                var nextHandleOrgs = orderHandleFlowDto.SecondaryOrgs
+                var secondaryOrgs = orderHandleFlowDto.SecondaryOrgs.DistinctBy(d => d.Id).ToList();
+                var nextHandleOrgs = secondaryOrgs
                     .Where(d => d.Level == 1 && d.Id.StartsWith(OrgSeedData.CenterId))
                     .ToList();
                 if (nextHandleOrgs.Any())
@@ -4051,9 +4052,14 @@ public class OrderController : BaseController
                 nextDto.IsStartCountersign = nextDto.NextHandlers.Count > 1;
 
                 await HandleNextInMainAndSecondaryAsync(_sessionContext, workflow.WorkflowDefinition,
-                    orderHandleFlowDto.SecondaryOrgs, nextDto, order.ExpiredTime, isAutoFillSummaryOpinion,
+                    secondaryOrgs, nextDto, order.ExpiredTime, isAutoFillSummaryOpinion,
                     cancellationToken);
 
+                //抄送
+               orderHandleFlowDto.Copys
+                    .Where(d=>!string.IsNullOrEmpty(d.OrgId)||!string.IsNullOrEmpty(d.RoleId)||!string.IsNullOrEmpty(d.UserId))
+                   .Select(d=>_mapper.Map<>())
+
                 break;
             default:
                 throw new ArgumentOutOfRangeException();
@@ -4063,7 +4069,7 @@ public class OrderController : BaseController
     private async Task HandleNextInMainAndSecondaryAsync(ISessionContext current, WorkflowDefinition definition, List<OrgDto> orgs,
       NextWorkflowDto? flowDto, DateTime? expiredTime, bool isAutoFillSummaryOpinion, CancellationToken cancellation)
     {
-        if (flowDto is null) return;
+        if (flowDto is null || !flowDto.NextHandlers.Any()) return;
         var nextSteps = await _workflowDomainService.NextAsync(current, flowDto, expiredTime,
             isAutoFillSummaryOpinion, cancellation);
 
@@ -4430,9 +4436,6 @@ public class OrderController : BaseController
             .OrderBy(d => d.CreationTime)
             .ToTreeAsync(d => d.Traces, d => d.ParentId, null);
 
-        //todo files
-        //await _fileRepository.WorkflowTraceRecursion(workflowDto.Traces, HttpContext.RequestAborted);
-
         return _mapper.Map<IReadOnlyList<OrderFlowTraceDto>>(traces);
     }
 

+ 1 - 1
src/Hotline.Share/Dtos/Order/Detail/OrderFlowTraceDto.cs

@@ -97,7 +97,7 @@ public class OrderFlowTraceDto
     /// <summary>
     /// 附件
     /// </summary>
-    public List<FileDto>? Files { get; set; }
+    public List<FileJson>? FileJson { get; set; }
 
     /// <summary>
     /// 备注

+ 1 - 1
src/Hotline.Share/Dtos/Order/OrderStartFlowDto.cs

@@ -31,7 +31,7 @@ namespace Hotline.Share.Dtos.Order
         /// <summary>
         /// 抄送对象
         /// </summary>
-        public List<FlowStepHandler> CopyToHandlers { get; set; }
+        public List<FlowStepHandler> Copys { get; set; }
         
         #region 手动填入办理人信息
 

+ 22 - 0
src/Hotline/Orders/OrderCarboncopy.cs

@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using XF.Domain.Repository;
+
+namespace Hotline.Orders
+{
+    [Description("工单抄送")]
+    public class OrderCarboncopy : CreationEntity
+    {
+        public string OrderId { get; set; }
+        public string? UserId { get; set; }
+        public string? Username { get; set; }
+        public string? OrgId { get; set; }
+        public string? OrgName { get; set; }
+        public string? RoleId { get; set; }
+        public string? RoleName { get; set; }
+    }
+}