ソースを参照

工单被特提后,需给被特提节点对应部门进行提示

田爽 1 ヶ月 前
コミット
c6cb5e37af

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

@@ -6113,6 +6113,11 @@ public class OrderController : BaseController
                 },
                 HttpContext.RequestAborted);
 
+            if (order.ActualHandleOrgName != OrgSeedData.CenterId && order.Status < EOrderStatus.Filed)
+            {
+                await _circularRecordDomainService.OrderSpecialCircularMessage(special, order, HttpContext.RequestAborted);
+			}
+
             if (string.IsNullOrEmpty(currentStep?.HandlerOrgId))
             {
                 special.OrgId = currentStep.HandlerOrgId;
@@ -6622,7 +6627,7 @@ public class OrderController : BaseController
                 var (workflow, targetStepDefine, currentStep, targetStep, newStep, isOrgToCenter) =
                 await _orderApplication.RecallAsync(dto, special, order, HttpContext.RequestAborted);
 
-                if (string.IsNullOrEmpty(currentStep?.HandlerOrgId))
+				if (string.IsNullOrEmpty(currentStep?.HandlerOrgId))
                 {
                     special.OrgId = currentStep.HandlerOrgId;
                     special.OrgName = currentStep.HandlerOrgName;

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

@@ -60,6 +60,7 @@ using Hotline.Repository.SqlSugar.Orders;
 using Quartz.Simpl;
 using J2N.Text;
 using Hotline.Application.FlowEngine;
+using Hotline.Article;
 
 namespace Hotline.Application.Orders;
 
@@ -110,8 +111,9 @@ public class OrderApplication : IOrderApplication, IScopeDependency
     private readonly IRepository<KnowledgeQuote> _knowledgeQuoteRepository;
     private readonly IRepository<OrderSpecial> _orderSpecialRepository;
     private readonly IWorkflowApplication _workflowApplication;
+	private readonly ICircularRecordDomainService _circularRecordDomainService;
 
-    public OrderApplication(
+	public OrderApplication(
         IOrderDomainService orderDomainService,
         IOrderRepository orderRepository,
         IWorkflowDomainService workflowDomainService,
@@ -155,7 +157,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
         IRepository<OrderTsDetails> orderTsDetailsRepository,
         IRepository<KnowledgeQuote> knowledgeQuoteRepository,
         IRepository<OrderSpecial> orderSpecialRepository,
-        IWorkflowApplication workflowApplication)
+        IWorkflowApplication workflowApplication,
+		ICircularRecordDomainService circularRecordDomainService)
     {
         _orderDomainService = orderDomainService;
         _workflowDomainService = workflowDomainService;
@@ -201,7 +204,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
         _knowledgeQuoteRepository = knowledgeQuoteRepository;
         _orderSpecialRepository = orderSpecialRepository;
         _workflowApplication = workflowApplication;
-    }
+        _circularRecordDomainService = circularRecordDomainService;
+	}
 
     /// <summary>
     /// 更新工单办理期满时间(延期调用,其他不调用)
@@ -4102,7 +4106,13 @@ public class OrderApplication : IOrderApplication, IScopeDependency
                 },
                 cancellation);
 
-        if (_appOptions.Value.IsZiGong && dto.BusinessType == EBusinessType.Send)
+
+		if (order.ActualHandleOrgName != OrgSeedData.CenterId && order.Status < EOrderStatus.Filed)
+		{
+			await _circularRecordDomainService.OrderSpecialCircularMessage(special, order, cancellation);
+		}
+
+		if (_appOptions.Value.IsZiGong && dto.BusinessType == EBusinessType.Send)
         {
             special.NextHandlers = new List<StepAssignInfo> { newStep.GetWorkflowStepHandler() };
         }

+ 1 - 1
src/Hotline.Share/Dtos/Article/BulletinDto.cs

@@ -296,7 +296,7 @@ namespace Hotline.Share.Dtos.Article
         public List<CircularReadGroupDto> CircularReadGroups { get; set; }
     }
 
-    public record UpdateCircularDto : AddCircularDto
+	public record UpdateCircularDto : AddCircularDto
     {
         public string Id { get; set; }
     }

+ 35 - 2
src/Hotline/Article/CircularRecordDomainService.cs

@@ -1,4 +1,5 @@
-using Hotline.Realtimes;
+using Hotline.Orders;
+using Hotline.Realtimes;
 using Hotline.Share.Dtos.Article;
 using Hotline.Share.Enums.Article;
 using MapsterMapper;
@@ -169,5 +170,37 @@ namespace Hotline.Article
                 }
             }
         }
-    }
+
+
+
+        /// <summary>
+        /// 特提处理通知公告
+        /// </summary>
+        /// <param name="special"></param>
+        /// <param name="order"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public async Task OrderSpecialCircularMessage(OrderSpecial special,Order order,CancellationToken cancellationToken = default) {
+
+			var cMessage = new AddCircularDto
+			{
+				Title = "信件特提信息",
+				Content = $"编号为{order.No}的工单已被特提。",
+				CircularTypeId = "1",
+				CircularTypeName = "公告通知",
+				CircularType = ECircularType.Org,
+				IsMustRead = false,
+				SourceOrgId = _sessionContext.RequiredOrgId,
+				SourceOrgName = _sessionContext.OrgName
+			};
+			var groups = new CircularReadGroupDto
+			{
+				OrgId = special.OrgId,
+				OrgName = special.OrgName
+			};
+			cMessage.CircularReadGroups = new List<CircularReadGroupDto> { groups };
+
+		}
+
+	}
 }

+ 6 - 1
src/Hotline/Article/ICircularRecordDomainService.cs

@@ -1,4 +1,5 @@
 
+using Hotline.Orders;
 using Hotline.Share.Dtos.Article;
 
 namespace Hotline.Article
@@ -16,5 +17,9 @@ namespace Hotline.Article
         /// <param name="cancellationToken"></param>
         /// <returns></returns>
         Task AddCircularMessage(AddCircularDto dto, CancellationToken cancellationToken = default);
-    }
+
+
+        Task OrderSpecialCircularMessage(OrderSpecial special, Order order, CancellationToken cancellationToken = default);
+
+	}
 }