TANG JIANG 1 year ago
parent
commit
e3dd070d0f

+ 21 - 1
src/Hotline.Api/Controllers/DataSharing/EnterpriseController.cs

@@ -1,9 +1,12 @@
 using DotNetCore.CAP;
 using Hotline.DataSharing;
 using Hotline.DataSharing.Enterprise;
+using Hotline.DataSharing.Order;
+using Hotline.DataSharing.Province.Notifications;
 using Hotline.Share.Dtos.DataSharing;
 using Hotline.Share.Dtos.DataSharing.Enterprise.Receive;
 using MapsterMapper;
+using MediatR;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
 using Sharing.Share.Dtos.DataSharing.Enterprise;
@@ -20,17 +23,25 @@ namespace Hotline.Api.Controllers.DataSharing
         private readonly IMapper _mapper;
         private readonly IRepository<DsReceiveWriteResult> _receiveWriteResultRepository;
         private readonly EnterpriseClient _enterpriseClient;
+        private readonly IMediator _mediator;
+        private readonly IRepository<DsOrder> _dataOrderRepository;
 
         /// <summary>
         /// 
         /// </summary>
         /// <param name="mapper"></param>
         /// <param name="receiveWriteResultRepository"></param>
-        public EnterpriseController(IMapper mapper, IRepository<DsReceiveWriteResult> receiveWriteResultRepository, EnterpriseClient enterpriseClient)
+        /// <param name="enterpriseClient"></param>
+        /// <param name="mediator"></param>
+        /// <param name="dataOrderRepository"></param>
+        public EnterpriseController(IMapper mapper, IRepository<DsReceiveWriteResult> receiveWriteResultRepository, EnterpriseClient enterpriseClient,
+         IMediator mediator, IRepository<DsOrder> dataOrderRepository)
         {
             _mapper = mapper;
             _receiveWriteResultRepository = receiveWriteResultRepository;
             _enterpriseClient = enterpriseClient;
+            _mediator = mediator;
+            _dataOrderRepository = dataOrderRepository;
         }
 
         /// <summary>
@@ -78,6 +89,15 @@ namespace Hotline.Api.Controllers.DataSharing
             var id = await _receiveWriteResultRepository.AddAsync(data, HttpContext.RequestAborted);
             if (!string.IsNullOrEmpty(id))
             {
+                string FinishType = "";
+                if (dto.ReplyResultType == 2)
+                    FinishType = "0";
+                else if (dto.ReplyResultType == 1)
+                    FinishType = "1";
+
+                var order = await _dataOrderRepository.GetAsync(p => p.OrderNo == dto.ReplyCode, HttpContext.RequestAborted);
+                if (order != null)
+                    await _mediator.Send(new OrderResultNotify { OrderId = order.OrderId, FinishType = FinishType, Opinion = dto.ReplyContent }, HttpContext.RequestAborted);
                 //向业务系统推送消息
                 // await _capPublisher.PublishAsync("", _mapper.Map<DataWriteResultDto>(dto), cancellationToken: HttpContext.RequestAborted);
                 //这里往业务系统推送数据

+ 12 - 6
src/Hotline.Api/Controllers/DataSharing/ProvinceController.cs

@@ -237,8 +237,9 @@ namespace Hotline.Api.Controllers.DataSharing
             var id = await InitReceiveProvinceData(dto.CaseSerial, dto.CliengGuid, "send_supervise_info", System.Text.Json.JsonSerializer.Serialize(dto));
             if (!string.IsNullOrEmpty(id))
             {
+                var listFiles = await GetFileData(dto.CliengGuid, dto.CaseSerial, "督办工单派发");
                 //向业务系统推送消息
-                await _mediator.Send(new ProvinceOrderSuperviseNotify { ProvinceOrderSuperviseDto = _mapper.Map<ProvinceOrderSuperviseDto>(dto) }, HttpContext.RequestAborted);
+                await _mediator.Send(new ProvinceOrderSuperviseNotify { ProvinceOrderSuperviseDto = _mapper.Map<ProvinceOrderSuperviseDto>(dto), Files = listFiles }, HttpContext.RequestAborted);
                 return OpenResponse.Ok(Reponse.Success("您已成功提交数据!"));
 
             }
@@ -305,7 +306,8 @@ namespace Hotline.Api.Controllers.DataSharing
 
             if (!string.IsNullOrEmpty(id))
             {
-                await _mediator.Send(new ScreenProvinceResultNotify { ProvinceScreenResult = _mapper.Map<ProvinceScreenResult>(dto) }, HttpContext.RequestAborted);
+                var listFiles = await GetFileData(dto.CliengGuid, dto.CaseSerial, "工单甄别结果");
+                await _mediator.Send(new ScreenProvinceResultNotify { ProvinceScreenResult = _mapper.Map<ProvinceScreenResult>(dto), Files = listFiles }, HttpContext.RequestAborted);
 
                 return OpenResponse.Ok(Reponse.Success("您已成功提交数据!"));
             }
@@ -338,8 +340,9 @@ namespace Hotline.Api.Controllers.DataSharing
 
             if (!string.IsNullOrEmpty(id))
             {
+                var listFiles = await GetFileData(dto.CliengGuid, dto.CaseSerial, "工单延期审核结果");
                 //向业务系统推送消息
-                await _mediator.Send(new DelayProvinceResultNotify { IsPass = dto.AuditResult == "1", Opinion = dto.AuditOpinion, No = dto.CaseSerial }, HttpContext.RequestAborted);
+                await _mediator.Send(new DelayProvinceResultNotify { IsPass = dto.AuditResult == "1", Opinion = dto.AuditOpinion, No = dto.CaseSerial, Files = listFiles }, HttpContext.RequestAborted);
                 return OpenResponse.Ok(Reponse.Success("您已成功提交数据!"));
             }
             else
@@ -404,7 +407,7 @@ namespace Hotline.Api.Controllers.DataSharing
 
             if (!string.IsNullOrEmpty(id))
             {
-              var data=  await _dataOrderRepository.GetAsync(p => p.ProvinceNo == dto.CaseSerial, HttpContext.RequestAborted);
+                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 });
                 //向业务系统推送消息
@@ -513,7 +516,10 @@ namespace Hotline.Api.Controllers.DataSharing
                     //将工单的办理状态改为办理完成,终止拉取办理信息
                     tempData.IsEnd = true;
                     await _sendCaseInfoRepository.UpdateAsync(tempData, HttpContext.RequestAborted);
+
+                    await _mediator.Send(new OrderResultNotify { OrderId = tempData.OrderID, FinishType = dto.FinishType, Opinion = dto.FdBack }, HttpContext.RequestAborted);
                 }
+
                 //向业务系统推送消息
                 //await _capPublisher.PublishAsync(Sharing.Share.Mq.EventNames.SharingOrderReultSend, _mapper.Map<ReultSendDto>(dto), cancellationToken: HttpContext.RequestAborted);
                 return OpenResponse.Ok(Reponse.Success("您已成功提交数据!"));
@@ -750,11 +756,11 @@ namespace Hotline.Api.Controllers.DataSharing
                             break;
                         case "screen_case_result_receive":
                             listFiles = await InitFileData(listData, "工单甄别结果");
-                            await _mediator.Send(new ScreenProvinceResultNotify { ProvinceScreenResult = new() { CaseSerial = tmpCaseMaterialInfo.CaseSerial } }, HttpContext.RequestAborted);
+                            await _mediator.Send(new ScreenProvinceResultNotify { ProvinceScreenResult = new() { CaseSerial = tmpCaseMaterialInfo.CaseSerial }, Files = listFiles }, HttpContext.RequestAborted);
                             break;
                         case "delay_case_result_receive":
                             listFiles = await InitFileData(listData, "工单延期审核结果");
-                            await _mediator.Send(new DelayProvinceResultNotify { No = tmpCaseMaterialInfo.CaseSerial }, HttpContext.RequestAborted);
+                            await _mediator.Send(new DelayProvinceResultNotify { No = tmpCaseMaterialInfo.CaseSerial, Files = listFiles }, HttpContext.RequestAborted);
                             break;
                         case "supply_case_info_receive":
                             listFiles = await InitFileData(listData, "工单补充");