ソースを参照

1、撤单和重办,需要处理发布和回访数据

Dun.Jason 6 ヶ月 前
コミット
ca24108c0e
1 ファイル変更31 行追加3 行削除
  1. 31 3
      src/Hotline.Application/Orders/OrderApplication.cs

+ 31 - 3
src/Hotline.Application/Orders/OrderApplication.cs

@@ -66,6 +66,7 @@ using Hotline.EventBus;
 using Hotline.Orders.Notifications;
 using Hotline.OrderTranspond;
 using Newtonsoft.Json;
+using static NPOI.SS.Format.CellNumberFormatter;
 
 namespace Hotline.Application.Orders;
 
@@ -107,8 +108,9 @@ public class OrderApplication : IOrderApplication, IScopeDependency
     private readonly ICalcExpireTime _expireTime;
     private readonly IRepository<OrderObserve> _orderObserveRepository;
     private readonly IOrderTerminateRepository _orderTerminateRepository;
+    private readonly IRepository<OrderPublishHistory> _orderPublishHistoryRepository;
 
-	public OrderApplication(
+    public OrderApplication(
         IOrderDomainService orderDomainService,
         IOrderRepository orderRepository,
         IWorkflowDomainService workflowDomainService,
@@ -143,7 +145,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
         ISessionContextProvider sessionContextProvider,
         IRepository<TranspondCityRawData> transpondCityRawDataRepository,
         IRepository<OrderObserve> orderObserveRepository,
-        IOrderTerminateRepository orderTerminateRepository)
+        IOrderTerminateRepository orderTerminateRepository,
+        IRepository<OrderPublishHistory> orderPublishHistoryRepository)
     {
         _orderDomainService = orderDomainService;
         _workflowDomainService = workflowDomainService;
@@ -179,7 +182,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
         _transpondCityRawDataRepository = transpondCityRawDataRepository;
         _orderObserveRepository = orderObserveRepository;
         _orderTerminateRepository = orderTerminateRepository;
-	}
+        _orderPublishHistoryRepository = orderPublishHistoryRepository;
+    }
 
     /// <summary>
     /// 更新工单办理期满时间(延期调用,其他不调用)
@@ -2380,6 +2384,30 @@ public class OrderApplication : IOrderApplication, IScopeDependency
                     order.Status = EOrderStatus.WaitForAccept;
                 }
                 await _orderRepository.UpdateAsync(order, cancellationToken);
+                //处理回访和发布信息
+              
+                var publish = await _orderPublishRepository.GetAsync(x => x.OrderId == order.Id);
+                if (publish != null)
+                {
+                    var publishHistory = _mapper.Map<OrderPublishHistory>(publish);
+                    publishHistory.OrderPublishId = publish.Id;
+                    publishHistory.ArrangeTitleAfter = publish.ArrangeTitle;
+                    publishHistory.ArrangeTitleBefor = publish.ArrangeTitle;
+                    publishHistory.ArrangeContentAfter = publish.ArrangeContent;
+                    publishHistory.ArrangeContentBefor = publish.ArrangeContent;
+                    publishHistory.ArrangeOpinionAfter = publish.ArrangeOpinion;
+                    publishHistory.ArrangeOpinionBefor = publish.ArrangeOpinion;
+                    await _orderPublishHistoryRepository.AddAsync(publishHistory, cancellationToken);
+                    await _orderPublishRepository.RemoveAsync(publish, false, cancellationToken);
+                }
+
+                var visit = await _orderVisitRepository.GetAsync(x => x.OrderId == order.Id&& x.VisitState != EVisitState.None);
+                if (visit != null)
+                {
+                    visit.VisitState = EVisitState.None;
+                    await _orderVisitRepository.UpdateAsync(visit,cancellationToken);
+                }
+
             }
             //await _workflowDomainService.RecallToStartStepAsync(order.WorkflowId, "省工单重派", current, cancellationToken);
         }