TANG JIANG 1 жил өмнө
parent
commit
d773fcbe41

+ 9 - 4
src/Hotline.Api/Controllers/DataSharing/ProvinceController.cs

@@ -1,4 +1,5 @@
 using Hotline.DataSharing;
+using Hotline.DataSharing.Order;
 using Hotline.DataSharing.Province;
 using Hotline.DataSharing.Province.Notifications;
 using Hotline.DataSharing.Province.XieTong.Receive;
@@ -13,10 +14,8 @@ using MapsterMapper;
 using MediatR;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
-using System.Collections.Generic;
 using XF.Domain.Filters;
 using XF.Domain.Repository;
-using static System.Runtime.InteropServices.JavaScript.JSType;
 
 namespace Hotline.Api.Controllers.DataSharing
 {
@@ -33,6 +32,7 @@ namespace Hotline.Api.Controllers.DataSharing
         private readonly IRepository<DsGetCaseBackApply> _getCaseBackApplyRepository;
         private readonly IChannelConfigurationManager _channelConfigurationManager;
         private readonly IRepository<DsReceiveProvinceData> _dsReceiveProvinceDataRepository;
+        private readonly IRepository<DsOrder> _dataOrderRepository;
 
         /// <summary>
         /// 
@@ -44,13 +44,15 @@ namespace Hotline.Api.Controllers.DataSharing
         /// <param name="getCaseBackApplyRepository"></param>
         /// <param name="channelConfigurationManager"></param>
         /// <param name="dsReceiveProvinceDataRepository"></param>
+        /// <param name="dataOrderRepository"></param>
         public ProvinceController(IMapper mapper,
            IMediator mediator,
           IRepository<DsGetCaseMaterialInfo> getCaseMaterialInfoRepository,
           IRepository<DsSendCaseInfo> sendCaseInfoRepository,
           IRepository<DsGetCaseBackApply> getCaseBackApplyRepository,
           IChannelConfigurationManager channelConfigurationManager,
-         IRepository<DsReceiveProvinceData> dsReceiveProvinceDataRepository)
+          IRepository<DsReceiveProvinceData> dsReceiveProvinceDataRepository,
+          IRepository<DsOrder> dataOrderRepository)
         {
             _mapper = mapper;
             _mediator = mediator;
@@ -59,6 +61,7 @@ namespace Hotline.Api.Controllers.DataSharing
             _getCaseBackApplyRepository = getCaseBackApplyRepository;
             _channelConfigurationManager = channelConfigurationManager;
             _dsReceiveProvinceDataRepository = dsReceiveProvinceDataRepository;
+            _dataOrderRepository = dataOrderRepository;
         }
         #endregion
 
@@ -401,6 +404,9 @@ namespace Hotline.Api.Controllers.DataSharing
 
             if (!string.IsNullOrEmpty(id))
             {
+              var data=  await _dataOrderRepository.GetAsync(p => p.ProvinceNo == dto.CaseSerial, HttpContext.RequestAborted);
+                if (data != null)
+                    await _mediator.Send(new CancelOrderAsyncNotify { Opinion = dto.RevokeReasion, OrderId = data.OrderId });
                 //向业务系统推送消息
                 //  await _capPublisher.PublishAsync(Sharing.Share.Mq.EventNames.SharingOrderRevoke, _mapper.Map<RevokeDto>(dto), cancellationToken: HttpContext.RequestAborted);
                 return OpenResponse.Ok(Reponse.Success("您已成功提交数据!"));
@@ -756,7 +762,6 @@ namespace Hotline.Api.Controllers.DataSharing
                             break;
                         case "revoke_case_info":
                             listFiles = await InitFileData(listData, "工单撤单");
-
                             break;
                         case "send_warn_info":
                             listFiles = await InitFileData(listData, "工单预警");

+ 21 - 0
src/Hotline/DataSharing/Province/Notifications/AddOrderTracesAsyncNotify.cs

@@ -0,0 +1,21 @@
+using Hotline.Share.Dtos.FlowEngine.Workflow;
+using MediatR;
+
+namespace Hotline.DataSharing.Province.Notifications
+{
+    /// <summary>
+    /// 新增工单办理流程记录
+    /// </summary>
+    public class AddOrderTracesAsyncNotify : INotification
+    {
+        /// <summary>
+        /// 工单ID
+        /// </summary>
+        public string OrderId { get; set; }
+
+        /// <summary>
+        /// 流程数据
+        /// </summary>
+        public ICollection<WorkflowTraceDto> Traces { get; set; }
+    }
+}

+ 20 - 0
src/Hotline/DataSharing/Province/Notifications/CancelOrderAsyncNotify.cs

@@ -0,0 +1,20 @@
+using MediatR;
+
+namespace Hotline.DataSharing.Province.Notifications
+{
+    /// <summary>
+    /// 撤销工单
+    /// </summary>
+    public class CancelOrderAsyncNotify : INotification
+    {
+        /// <summary>
+        /// 工单Id
+        /// </summary>
+        public string OrderId { get; set; }
+
+        /// <summary>
+        /// 意见
+        /// </summary>
+        public string Opinion { get; set; }
+    }
+}

+ 8 - 0
src/Hotline/DataSharing/Province/Services/IProvinceService.cs

@@ -186,5 +186,13 @@ namespace Hotline.DataSharing.Province.Services
         /// <returns></returns>
         Task SendRealTimeStatus(SendRealTimeStatusInfo dto, CancellationToken cancellationToken);
         #endregion
+
+        /// <summary>
+        /// 撤单
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        Task RevokeOrder(PublishSpecialDto dto, CancellationToken cancellationToken);
     }
 }

+ 11 - 0
src/Hotline/DataSharing/Province/Services/ProvinceService.cs

@@ -938,6 +938,17 @@ namespace Hotline.DataSharing.Province.Services
         }
         #endregion
 
+        /// <summary>
+        /// 撤单
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public async Task RevokeOrder(PublishSpecialDto dto, CancellationToken cancellationToken)
+        {
+
+        }
+
         ///// <summary>
         ///// 接收发布数据
         ///// </summary>