Procházet zdrojové kódy

新增外部展示

tangjiang před 8 měsíci
rodič
revize
7bc788ca28

+ 31 - 1
src/DataSharing.Host/Controllers/CityDataExchangeController.cs

@@ -13,6 +13,7 @@ using MapsterMapper;
 using MediatR;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
+using Microsoft.OpenApi.Models;
 using System.Security.Cryptography;
 using System.Text;
 using System.Web;
@@ -34,6 +35,7 @@ namespace DataSharing.Host.Controllers
         private readonly FwClient _fwClient;
         private readonly IRepository<DsUserTokenInfo> _dsUserTokenInfoRepository;
         private readonly ISharingSessionContext _sessionContext;
+        private readonly IRepository<DsReceiveHandleData> _dsReceiveHandleDataRepository;
 
         /// <summary>
         /// 
@@ -45,13 +47,16 @@ namespace DataSharing.Host.Controllers
         /// <param name="dsReceiveDataExchangeDataRepository"></param>
         /// <param name="fwClient"></param>
         /// <param name="dsUserTokenInfoRepository"></param>
+        /// <param name="sessionContext"></param>
+        /// <param name="dsReceiveHandleDataRepository"></param>
         public CityDataExchangeController(IMapper mapper, IMediator mediator,
             ICapPublisher capPublisher,
             IChannelConfigurationManager channelConfigurationManager,
             IRepository<DsReceiveDataExchangeData> dsReceiveDataExchangeDataRepository,
             FwClient fwClient,
             IRepository<DsUserTokenInfo> dsUserTokenInfoRepository,
-            ISharingSessionContext sessionContext)
+            ISharingSessionContext sessionContext,
+            IRepository<DsReceiveHandleData> dsReceiveHandleDataRepository)
         {
             _mapper = mapper;
             _mediator = mediator;
@@ -61,6 +66,7 @@ namespace DataSharing.Host.Controllers
             _fwClient = fwClient;
             _dsUserTokenInfoRepository = dsUserTokenInfoRepository;
             _sessionContext = sessionContext;
+            _dsReceiveHandleDataRepository = dsReceiveHandleDataRepository;
         }
 
         /// <summary>
@@ -210,6 +216,18 @@ namespace DataSharing.Host.Controllers
             };
             await _dsReceiveDataExchangeDataRepository.AddAsync(data, HttpContext.RequestAborted);
 
+            //写入对外展示表数据
+            DsReceiveHandleData dsReceive = new()
+            {
+                OrderNo = dto.ExternalId,
+                Source = "市州互转",
+                PlatformsName = _sessionContext.PlatformSourceName,
+                ReceiveData = System.Text.Json.JsonSerializer.Serialize(dto),
+                OperationType = "市州互转办理结果",
+                Opinion = dto.ActualOpinion
+            };
+            await _dsReceiveHandleDataRepository.AddAsync(dsReceive, HttpContext.RequestAborted);
+
             TranspondCityOrderResultDto transpondCityOrderResultDto = new()
             {
                 No = dto.ExternalId,
@@ -353,6 +371,18 @@ namespace DataSharing.Host.Controllers
             };
             await _dsReceiveDataExchangeDataRepository.AddAsync(data, HttpContext.RequestAborted);
 
+            //写入对外展示表数据
+            DsReceiveHandleData dsReceive = new()
+            {
+                OrderNo = dto.SCDRCode,
+                Source = "市州互转",
+                PlatformsName = dto.Source,
+                ReceiveData = System.Text.Json.JsonSerializer.Serialize(dto),
+                OperationType = "市州互转办理结果",
+                Opinion = dto.UndertakAdvice
+            };
+            await _dsReceiveHandleDataRepository.AddAsync(dsReceive, HttpContext.RequestAborted);
+
             TranspondCityOrderResultDto transpondCityOrderResultDto = new()
             {
                 No = dto.SCDRCode,

+ 42 - 1
src/DataSharing.Host/Controllers/Police110/PoliceDCJTController.cs

@@ -10,12 +10,15 @@ using DataSharing.Share.Dtos.Police110.DaoShu110;
 using DataSharing.Share.Dtos.Police110.DCJT110;
 using DataSharing.Share.Enums;
 using DotNetCore.CAP;
+using Google.Protobuf.WellKnownTypes;
 using Hotline.Share.Dtos.DataSharing.PusherHotlineDto;
+using Hotline.Share.Dtos.Order;
 using Hotline.Share.Enums.Order;
 using MapsterMapper;
 using MediatR;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
+using Microsoft.OpenApi.Models;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Converters;
 using System.Net;
@@ -44,6 +47,7 @@ namespace DataSharing.Host.Controllers.Police110
         private readonly FwClient _fwClient;
         private readonly ISharingConfigurationManager _sharingConfigurationManager;
         private readonly IRepository<SendHotlineErrorData> _sendHotlineErrorDataRepository;
+        private readonly IRepository<DsReceiveHandleData> _dsReceiveHandleDataRepository;
 
         /// <summary>
         /// 
@@ -59,6 +63,7 @@ namespace DataSharing.Host.Controllers.Police110
         /// <param name="fwClient"></param>
         /// <param name="sharingConfigurationManager"></param>
         /// <param name="sendHotlineErrorDataRepository"></param>
+        /// <param name="dsReceiveHandleDataRepository"></param>
         public PoliceDCJTController(IMapper mapper,
             ICapPublisher capPublisher,
             IMediator mediator,
@@ -69,7 +74,8 @@ namespace DataSharing.Host.Controllers.Police110
             IRepository<DsReceivePoliceData> dsReceivePoliceDataRepository,
             FwClient fwClient,
             ISharingConfigurationManager sharingConfigurationManager,
-            IRepository<SendHotlineErrorData> sendHotlineErrorDataRepository)
+            IRepository<SendHotlineErrorData> sendHotlineErrorDataRepository,
+            IRepository<DsReceiveHandleData> dsReceiveHandleDataRepository)
         {
             _mapper = mapper;
             _capPublisher = capPublisher;
@@ -82,6 +88,7 @@ namespace DataSharing.Host.Controllers.Police110
             _fwClient = fwClient;
             _sharingConfigurationManager = sharingConfigurationManager;
             _sendHotlineErrorDataRepository = sendHotlineErrorDataRepository;
+            _dsReceiveHandleDataRepository = dsReceiveHandleDataRepository;
         }
         #endregion
 
@@ -283,6 +290,7 @@ namespace DataSharing.Host.Controllers.Police110
                             chainDeal = System.Text.Json.JsonSerializer.Deserialize<ChainDeal_DCJT>(jsonRes);
 
                         await InitRawData("service/api/dcjt/110To12345/chainDeal", base64String, jsonRes, chainDeal?.AlarmReceiptNumber);
+
                     }
 
                     #region 数据验证
@@ -706,6 +714,39 @@ namespace DataSharing.Host.Controllers.Police110
             if (orderData is null)
                 return;
 
+            //写入对外展示表数据
+            DsReceiveHandleData dsReceive = new()
+            {
+                OrderNo = orderData.OrderNo,
+                Source = "110平台",
+                PlatformsName = "110平台",
+                ReceiveData = System.Text.Json.JsonSerializer.Serialize(policeReceiveChainDealDs)
+            };
+            if (policeReceiveChainDealDs.DisposalType == "1")//正常办理
+            {
+                dsReceive.OperationType = "110推送办理结果";
+                dsReceive.Opinion = policeReceiveChainDealDs.DisposalSituation;
+            }
+            else if (policeReceiveChainDealDs.DisposalType == "2")//退回 
+            {
+                dsReceive.OperationType = "110退回";
+                dsReceive.Opinion = policeReceiveChainDealDs.ReturnOpinion;
+            }
+            else if (policeReceiveChainDealDs.DisposalType == "3")//回访 
+            {
+                var orgProcessingResults = policeReceiveChainDealDs.VisitResult switch
+                {
+                    "1" => "非常满意",//非常满意
+                    "2" => "满意",//满意
+                    "3" => "不满意",//不满意
+                    _ => "满意",
+                };
+                dsReceive.OperationType = "110回访内容";
+                dsReceive.Opinion = "回访时间:" + policeReceiveChainDealDs.RevisitTime + "/br回访内容:" + policeReceiveChainDealDs.VisitContent + "/br回访方式:人工回访/br满意度" + orgProcessingResults;
+            }
+
+            await _dsReceiveHandleDataRepository.AddAsync(dsReceive, HttpContext.RequestAborted);
+
             if (policeReceiveChainDealDs.DisposalType == "1")//正常办理
             {
                 OrderResultDto orderResultDto = new()

+ 37 - 1
src/DataSharing.Host/Controllers/Police110/PoliceDSController.cs

@@ -42,6 +42,7 @@ namespace DataSharing.Host.Controllers.Police110
         private readonly FwClient _fwClient;
         private readonly ISharingConfigurationManager _sharingConfigurationManager;
         private readonly IRepository<SendHotlineErrorData> _sendHotlineErrorDataRepository;
+        private readonly IRepository<DsReceiveHandleData> _dsReceiveHandleDataRepository;
 
         /// <summary>
         /// 
@@ -57,6 +58,7 @@ namespace DataSharing.Host.Controllers.Police110
         /// <param name="fwClient"></param>
         /// <param name="sharingConfigurationManager"></param>
         /// <param name="sendHotlineErrorDataRepository"></param>
+        /// <param name="dsReceiveHandleDataRepository"></param>
         public PoliceDSController(IMapper mapper,
             ICapPublisher capPublisher,
             IMediator mediator,
@@ -67,7 +69,8 @@ namespace DataSharing.Host.Controllers.Police110
             IRepository<DsReceivePoliceData> dsReceivePoliceDataRepository,
             FwClient fwClient,
             ISharingConfigurationManager sharingConfigurationManager,
-            IRepository<SendHotlineErrorData> sendHotlineErrorDataRepository)
+            IRepository<SendHotlineErrorData> sendHotlineErrorDataRepository,
+            IRepository<DsReceiveHandleData> dsReceiveHandleDataRepository)
         {
             _mapper = mapper;
             _capPublisher = capPublisher;
@@ -80,6 +83,7 @@ namespace DataSharing.Host.Controllers.Police110
             _fwClient = fwClient;
             _sharingConfigurationManager = sharingConfigurationManager;
             _sendHotlineErrorDataRepository = sendHotlineErrorDataRepository;
+            _dsReceiveHandleDataRepository = dsReceiveHandleDataRepository;
         }
         #endregion
 
@@ -688,6 +692,38 @@ namespace DataSharing.Host.Controllers.Police110
             var orderData = await _dsOrderRepository.GetAsync(p => p.ExternalId == policeReceiveChainDealDs.AlarmReceiptNumber);
             if (orderData is null)
                 return;
+            //写入对外展示表数据
+            DsReceiveHandleData dsReceive = new()
+            {
+                OrderNo = orderData.OrderNo,
+                Source = "110平台",
+                PlatformsName = "110平台",
+                ReceiveData = System.Text.Json.JsonSerializer.Serialize(policeReceiveChainDealDs)
+            };
+            if (policeReceiveChainDealDs.DisposalType == 1)//正常办理
+            {
+                dsReceive.OperationType = "110推送办理结果";
+                dsReceive.Opinion = policeReceiveChainDealDs.DisposalSituation;
+            }
+            else if (policeReceiveChainDealDs.DisposalType == 2)//退回 
+            {
+                dsReceive.OperationType = "110退回";
+                dsReceive.Opinion = policeReceiveChainDealDs.ReturnOpinion;
+            }
+            else if (policeReceiveChainDealDs.DisposalType == 3)//回访 
+            {
+                var orgProcessingResults = policeReceiveChainDealDs.VisitResult switch
+                {
+                    "1" => "非常满意",//非常满意
+                    "2" => "满意",//满意
+                    "3" => "不满意",//不满意
+                    _ => "满意",
+                };
+                dsReceive.OperationType = "110回访内容";
+                dsReceive.Opinion = "回访时间:" + policeReceiveChainDealDs.RevisitTime + "/br回访内容:" + policeReceiveChainDealDs.VisitContent + "/br回访方式:人工回访/br满意度" + orgProcessingResults;
+            }
+
+            await _dsReceiveHandleDataRepository.AddAsync(dsReceive, HttpContext.RequestAborted);
 
             if (policeReceiveChainDealDs.DisposalType == 1)//正常办理
             {

+ 17 - 1
src/DataSharing.Host/Controllers/YiBin/EnterpriseController.cs

@@ -34,6 +34,7 @@ namespace DataSharing.Host.Controllers.YiBin
         private readonly IIdentityAppService _identityAppService;
         private readonly IOptionsSnapshot<IdentityConfiguration> _identityOptionsAccessor;
         private readonly ISharingConfigurationManager _sharingConfigurationManager;
+        private readonly IRepository<DsReceiveHandleData> _dsReceiveHandleDataRepository;
 
         /// <summary>
         /// 
@@ -48,6 +49,7 @@ namespace DataSharing.Host.Controllers.YiBin
         /// <param name="identityAppService"></param>
         /// <param name="identityOptionsAccessor"></param>
         /// <param name="sharingConfigurationManager"></param>
+        /// <param name="dsReceiveHandleDataRepository"></param>
         public EnterpriseController(IMapper mapper, IRepository<DsReceiveEnterpriseData> dsReceiveEnterpriseDataRepository,
             EnterpriseClient enterpriseClient,
          IMediator mediator,
@@ -56,7 +58,8 @@ namespace DataSharing.Host.Controllers.YiBin
          IChannelConfigurationManager channelConfigurationManager,
          IIdentityAppService identityAppService,
          IOptionsSnapshot<IdentityConfiguration> identityOptionsAccessor,
-         ISharingConfigurationManager sharingConfigurationManager)
+         ISharingConfigurationManager sharingConfigurationManager,
+         IRepository<DsReceiveHandleData> dsReceiveHandleDataRepository)
         {
             _mapper = mapper;
             _dsReceiveEnterpriseDataRepository = dsReceiveEnterpriseDataRepository;
@@ -68,6 +71,7 @@ namespace DataSharing.Host.Controllers.YiBin
             _identityAppService = identityAppService;
             _identityOptionsAccessor = identityOptionsAccessor;
             _sharingConfigurationManager = sharingConfigurationManager;
+            _dsReceiveHandleDataRepository = dsReceiveHandleDataRepository;
         }
 
         /// <summary>
@@ -143,6 +147,18 @@ namespace DataSharing.Host.Controllers.YiBin
             var id = await _dsReceiveEnterpriseDataRepository.AddAsync(data, HttpContext.RequestAborted);
             var order = await _dataOrderRepository.GetAsync(p => p.OrderNo == dto.ReplyCode, HttpContext.RequestAborted);
 
+            //写入对外展示表数据
+            DsReceiveHandleData dsReceive = new()
+            {
+                OrderNo = dto.ReplyCode,
+                Source = "企业专班",
+                PlatformsName = "企业专班",
+                ReceiveData = System.Text.Json.JsonSerializer.Serialize(dto),
+                OperationType = dto.ReplyResultType == 2 ? "工单退回" : dto.ReplyResultType == 1 ? "办理完成" : "办理中",
+                Opinion = dto.ReplyContent
+            };
+            await _dsReceiveHandleDataRepository.AddAsync(dsReceive, HttpContext.RequestAborted);
+
             List<FileDto> Files = new();
             if (dto.ReplyFiles != null && dto.ReplyFiles.Count > 0)
             {

+ 40 - 0
src/DataSharing/RawData/DsReceiveHandleData.cs

@@ -0,0 +1,40 @@
+using XF.Domain.Repository;
+
+namespace DataSharing.RawData
+{
+    /// <summary>
+    /// 对外展示接收数据
+    /// </summary>
+    public class DsReceiveHandleData : CreationEntity
+    {
+        /// <summary>
+        /// 编号
+        /// </summary>
+        public string? OrderNo { get; set; }
+
+        /// <summary>
+        /// 业务平台
+        /// </summary>
+        public string? Source { get; set; }
+
+        /// <summary>
+        /// 平台名称
+        /// </summary>
+        public string? PlatformsName { get; set; }
+
+        /// <summary>
+        /// 原始数据
+        /// </summary>
+        public string? ReceiveData { get; set; }
+
+        /// <summary>
+        /// 操作
+        /// </summary>
+        public string? OperationType { get; set; }
+
+        /// <summary>
+        /// 办理意见
+        /// </summary>
+        public string? Opinion { get; set; }
+    }
+}