Dun.Jason 1 年之前
父节点
当前提交
e7a61af3a5

+ 13 - 5
src/Hotline.Api/Controllers/OrderController.cs

@@ -1,4 +1,5 @@
 using DotNetCore.CAP;
+using DotNetCore.CAP.Monitoring;
 using Hotline.Api.Filter;
 using Hotline.Application.ExportExcel;
 using Hotline.Application.FlowEngine;
@@ -42,7 +43,9 @@ using MediatR;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
 using MiniExcelLibs;
+using MongoDB.Driver.Linq;
 using SqlSugar;
+using System.Xml.Linq;
 using XF.Domain.Authentications;
 using XF.Domain.Cache;
 using XF.Domain.Constants;
@@ -1716,11 +1719,11 @@ public class OrderController : BaseController
                 try
                 {
                     //查询部门所有账号
-                    var userlist = await _userRepository.Queryable().Where(x => x.OrgId == model.OrgId && !string.IsNullOrEmpty(x.PhoneNo)).ToListAsync();
+                    var userlist = await _userRepository.Queryable().Where(x => x.OrgId == model.OrgId && !string.IsNullOrEmpty(x.PhoneNo) && x.Roles.Any(d=>d.Id== "08dae71e-0eca-4bc4-89fe-7eaefae8a98e")).ToListAsync();
                     //发送短信
                     foreach (var user in userlist)
                     {
-                        var messageDto = new MessageDto
+                        var messageDto = new Share.Dtos.Push.MessageDto
                         {
                             PushBusiness = EPushBusiness.OrderSupervise,
                             ExternalId = order.Id,
@@ -1959,11 +1962,11 @@ public class OrderController : BaseController
                 try
                 {
                     //查询部门所有账号
-                    var userlist = await _userRepository.Queryable().Where(x => x.OrgId == model.OrgId && !string.IsNullOrEmpty(x.PhoneNo)).ToListAsync();
+                    var userlist = await _userRepository.Queryable().Where(x => x.OrgId == model.OrgId && !string.IsNullOrEmpty(x.PhoneNo) && x.Roles.Any(d => d.Id == "08dae71e-0eca-4bc4-89fe-7eaefae8a98e")).ToListAsync();
                     foreach (var user in userlist)
                     {
                         //发送短信
-                        var messageDto = new MessageDto
+                        var messageDto = new Share.Dtos.Push.MessageDto
                         {
                             PushBusiness = EPushBusiness.OrderUrge,
                             ExternalId = order.Id,
@@ -2277,7 +2280,7 @@ public class OrderController : BaseController
             {
                 _logger.LogInformation($"推送短信: orderNo: {order.No}");
 
-                var messageDto = new MessageDto
+                var messageDto = new Share.Dtos.Push.MessageDto
                 {
                     PushBusiness = EPushBusiness.OrderAccept,
                     ExternalId = order.Id,
@@ -2483,6 +2486,11 @@ public class OrderController : BaseController
         await _orderRepository.UpdateAsync(order, HttpContext.RequestAborted);
 
         await _workflowApplication.NextAsync(dto, order.ExpiredTime, HttpContext.RequestAborted);
+
+        if (dto.IsSms)
+        {
+            //发送短信
+        }
     }
 
     /// <summary>

+ 2 - 2
src/Hotline.Application/CallCenter/Calls/TelsStatusRefreshService.cs

@@ -32,7 +32,7 @@ namespace Hotline.Application.CallCenter.Calls
             {
                 try
                 {
-                    var list = await _workRepository.Queryable().Where(x => !x.EndTime.HasValue).ToListAsync();
+                    var list = await _workRepository.Queryable().Where(x => x.EndTime==null).ToListAsync();
                     var tellist = await _trClient.QueryTelStateAsync(new Tr.Sdk.Tels.QueryTelStateRequest { }, stoppingToken);
                     foreach (var item in list)
                     {
@@ -41,7 +41,7 @@ namespace Hotline.Application.CallCenter.Calls
                         {
                             if (telmodel.State == "logout")
                             {
-                                var telRest = await _telRestRepository.GetAsync(x => x.TelNo == item.TelNo && !x.EndTime.HasValue, stoppingToken);
+                                var telRest = await _telRestRepository.GetAsync(x => x.TelNo == item.TelNo && x.EndTime != null, stoppingToken);
                                 if (telRest is not null)
                                 {
                                     telRest.EndRest();

+ 9 - 0
src/Hotline.Application/Handlers/FlowEngine/WorkflowStartHandler.cs

@@ -95,6 +95,15 @@ namespace Hotline.Application.Handlers.FlowEngine
                     await _capPublisher.PublishAsync(EventNames.HotlineOrderFlowStarted, publishCallRecordDto,
                         cancellationToken: cancellationToken);
 
+                    try
+                    {
+                        if (notification.Dto.IsSms)
+                        {
+                            //TODO 
+                        }
+                    }
+                    catch{}
+
                     //写入质检
                     await _qualityApplication.AddQualityAsync(EQualitySource.Accepted, order.Id, cancellationToken);
                     break;

+ 5 - 0
src/Hotline/Permissions/EPermission.cs

@@ -1987,6 +1987,11 @@ namespace Hotline.Permissions
         /// </summary>
         [Display(GroupName = "数据统计", Name = "部门延期统计", Description = "部门延期统计")]
         OrgDelayStatistics = 110603,
+        /// <summary>
+        /// 部门满意度统计
+        /// </summary>
+        [Display(GroupName ="数据统计",Name = "部门满意度统计",Description = "部门满意度统计")]
+        VisitAndOrgSatisfactionStatistics = 110604,
         #endregion