xf 2 anni fa
parent
commit
5c6b6b39e8

+ 12 - 7
src/Hotline.Api/Controllers/PbxController.cs

@@ -6,6 +6,7 @@ using Hotline.CallCenter.Devices;
 using Hotline.CallCenter.Ivrs;
 using Hotline.CallCenter.Manage;
 using Hotline.CallCenter.Tels;
+using Hotline.FlowEngine.Definitions;
 using Hotline.Permissions;
 using Hotline.Repository.SqlSugar.CallCenter;
 using Hotline.Settings;
@@ -47,6 +48,7 @@ namespace Hotline.Api.Controllers
         private readonly ITrunkIvrManagerRepository _trunkIvrManagerRepository;
         private readonly IIvrCategoryRepository _ivrCategoryRepository;
         private readonly IWorkflowApplication _workflowApplication;
+        private readonly IDefinitionDomainService _definitionDomainService;
         private readonly ISystemSettingCacheManager _systemSettingCacheManager;
 
         public PbxController(
@@ -65,6 +67,7 @@ namespace Hotline.Api.Controllers
             ITrunkIvrManagerRepository trunkIvrManagerRepository,
             IIvrCategoryRepository ivrCategoryRepository,
             IWorkflowApplication workflowApplication,
+            IDefinitionDomainService definitionDomainService,
             ISystemSettingCacheManager systemSettingCacheManager)
         {
             _telRepository = telRepository;
@@ -82,6 +85,7 @@ namespace Hotline.Api.Controllers
             _trunkIvrManagerRepository = trunkIvrManagerRepository;
             _ivrCategoryRepository = ivrCategoryRepository;
             _workflowApplication = workflowApplication;
+            _definitionDomainService = definitionDomainService;
             _systemSettingCacheManager = systemSettingCacheManager;
         }
 
@@ -246,15 +250,16 @@ namespace Hotline.Api.Controllers
             }
             else
             {
-                telRest.WorkflowId = await _workflowApplication.StartWorkflowAsync(dto, HttpContext.RequestAborted);
+                var startWorkflowDto = _mapper.Map<StartWorkflowDto>(dto);
+                var denition = await _definitionDomainService.GetLastVersionDefinitionByModuleCodeAsync(WorkflowModuleConsts.TelRestApply,
+                    HttpContext.RequestAborted);
+                if (denition is null)
+                    throw UserFriendlyException.SameMessage("未配置流程模板");
+                startWorkflowDto.DefinitionCode = denition.Code;
+                startWorkflowDto.Title = dto.Reason;
+                telRest.WorkflowId = await _workflowApplication.StartWorkflowAsync(startWorkflowDto, HttpContext.RequestAborted);
             }
             await _telRestRepository.AddAsync(telRest, HttpContext.RequestAborted);
-
-            //string id = await _telDomainService.RestAsync(work, dto.Reason, isApply, HttpContext.RequestAborted);
-
-            //var startworkflow = _mapper.Map<StartWorkflowDto>(dto);
-            //if (isApply)
-            //    await _workflowApplication.StartWorkflowAsync(dto, HttpContext.RequestAborted);
         }
 
         /// <summary>

+ 1 - 1
src/Hotline.Share/Dtos/CallCenter/TelRestDto.cs

@@ -2,7 +2,7 @@
 
 namespace Hotline.Share.Dtos.CallCenter
 {
-    public class StartRestDto: StartWorkflowDto
+    public class StartRestDto: BasicWorkflowDto
     {
         /// <summary>
         /// 小休原因

+ 2 - 0
src/Hotline.Share/Dtos/Order/OrderDto.cs

@@ -70,6 +70,8 @@ namespace Hotline.Share.Dtos.Order
         /// </summary>
         public string? EmployeeStaffNo { get; set; }
 
+        public string WorkflowId { get; set; }
+
         /// <summary>
         /// 超期时间描述(需求:超期3天、0.5天后超期)
         /// </summary>

+ 0 - 50
src/Hotline.Share/Dtos/Workflow/WorkflowDefinitionDto.cs

@@ -1,50 +0,0 @@
-namespace Hotline.Share.Dtos.Workflow;
-
-public class WorkflowDefinitionDto
-{
-    public bool IsPreDefinition { get; set; }
-
-    /// <summary>
-    /// 模板编码
-    /// </summary>
-    public string Id { get; set; }
-
-    public int Version { get; set; }
-
-    public string Description { get; set; }
-
-    //public string DataType { get; set; }
-
-    //public WorkflowErrorHandling DefaultErrorBehavior { get; set; }
-
-    public TimeSpan? DefaultErrorRetryInterval { get; set; }
-
-    //public List<Step> Steps { get; set; } = new List<Step>();
-
-    /// <summary>
-    /// 业务模块
-    /// </summary>
-    public string Module { get; set; }
-
-    /// <summary>
-    /// 业务模块编码
-    /// </summary>
-    public string ModuleCode { get; set; }
-
-    /// <summary>
-    /// 模板名称
-    /// </summary>
-    public string Name { get; set; }
-
-    /// <summary>
-    /// 启用/禁用
-    /// </summary>
-    public bool Enable { get; set; }
-
-    public DateTime CreationTime { get; set; }
-
-    /// <summary>
-    /// 最近更新时间
-    /// </summary>
-    public DateTime LastModificationTime { get; }
-}