Bläddra i källkod

290 省件被退回至热线中心时,需给当前节点对应角色用户进行弹窗提示

田爽 1 månad sedan
förälder
incheckning
e5e240a5fa

+ 24 - 4
src/Hotline.Application/Orders/OrderApplication.cs

@@ -112,8 +112,9 @@ public class OrderApplication : IOrderApplication, IScopeDependency
     private readonly IRepository<OrderSpecial> _orderSpecialRepository;
     private readonly IWorkflowApplication _workflowApplication;
     private readonly ICircularRecordDomainService _circularRecordDomainService;
+	private readonly IRepository<User> _userRepository;
 
-    public OrderApplication(
+	public OrderApplication(
         IOrderDomainService orderDomainService,
         IOrderRepository orderRepository,
         IWorkflowDomainService workflowDomainService,
@@ -158,7 +159,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
         IRepository<KnowledgeQuote> knowledgeQuoteRepository,
         IRepository<OrderSpecial> orderSpecialRepository,
         IWorkflowApplication workflowApplication,
-        ICircularRecordDomainService circularRecordDomainService)
+        ICircularRecordDomainService circularRecordDomainService,
+		IRepository<User> userRepository)
     {
         _orderDomainService = orderDomainService;
         _workflowDomainService = workflowDomainService;
@@ -205,7 +207,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
         _orderSpecialRepository = orderSpecialRepository;
         _workflowApplication = workflowApplication;
         _circularRecordDomainService = circularRecordDomainService;
-    }
+        _userRepository = userRepository;
+	}
 
     /// <summary>
     /// 更新工单办理期满时间(延期调用,其他不调用)
@@ -5230,7 +5233,24 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             await _orderRepository.Updateable().SetColumns(o => new Order() { ProcessType = processType, SendBackNum = order.SendBackNum })
                 .Where(o => o.Id == order.Id).ExecuteCommandAsync(cancellationToken);
         }
-    }
+
+		if (_appOptions.Value.IsYiBin && order.IsProvince && sendBack.ApplyOrgId.Length == 6 && sendBack.SendBackOrgId == OrgSeedData.CenterId )
+		{
+            if (currentStep.FlowAssignType == EFlowAssignType.User)
+            {
+                await _circularRecordDomainService.OrderSendBackCircularMessage(currentStep.HandlerId, currentStep.HandlerName, order, cancellationToken);
+            }
+            else if (currentStep.FlowAssignType == EFlowAssignType.Role && !string.IsNullOrEmpty(currentStep.RoleId))
+            {
+
+                var users = await _userRepository.Queryable().Includes(x => x.Roles).Where(x => x.Roles.Where(x => x.Id == currentStep.RoleId).Any()).ToListAsync();
+                foreach (var user in users)
+                {
+                    await _circularRecordDomainService.OrderSendBackCircularMessage(user.Id, user.Name, order, cancellationToken);
+                }
+            }
+		}
+	}
 
     #endregion
 }

+ 8 - 4
src/Hotline/Article/CircularRecordDomainService.cs

@@ -202,7 +202,11 @@ namespace Hotline.Article
 
 		}
 
-		public async Task OrderSendBackCircularMessage(OrderSpecial special, Order order, CancellationToken cancellationToken = default)
+        /// <summary>
+        /// 信件退回公告通知
+        /// </summary>
+        /// <returns></returns>
+		public async Task OrderSendBackCircularMessage(string userId,string userName, Order order, CancellationToken cancellationToken = default)
 		{
 
 			var cMessage = new AddCircularDto
@@ -211,15 +215,15 @@ namespace Hotline.Article
 				Content = $"工单编码为{order.No}的工单,已被退回,请及时处理!",
 				CircularTypeId = "1",
 				CircularTypeName = "公告通知",
-				CircularType = ECircularType.Org,
+				CircularType = ECircularType.Person,
 				IsMustRead = false,
 				SourceOrgId = _sessionContext.RequiredOrgId,
 				SourceOrgName = _sessionContext.OrgName
 			};
 			var groups = new CircularReadGroupDto
 			{
-				OrgId = order.ActualHandleOrgCode,
-				OrgName = order.ActualHandleOrgName
+				UserId = userId,
+				UserName = userName
 			};
 			cMessage.CircularReadGroups = new List<CircularReadGroupDto> { groups };
 

+ 2 - 0
src/Hotline/Article/ICircularRecordDomainService.cs

@@ -21,5 +21,7 @@ namespace Hotline.Article
 
         Task OrderSpecialCircularMessage(OrderSpecial special, Order order, CancellationToken cancellationToken = default);
 
+        Task OrderSendBackCircularMessage(string userId, string userName, Order order, CancellationToken cancellationToken = default);
+
 	}
 }