TANG JIANG 1 năm trước cách đây
mục cha
commit
8f44d949a1

+ 12 - 2
src/DataSharing.Application/Receivers/ProvinceReceiver.cs

@@ -1419,9 +1419,19 @@ namespace DataSharing.Application.Receivers
 
             if (string.IsNullOrEmpty(policeSend.AlarmReceiptNumber))
             {
-                policeSend.AlarmReceiptNumber = orderDto.No;
-                policeSend.SerialNumber = orderDto.No;
+                policeSend.AlarmReceiptNumber = orderDto.AreaCode + orderDto.No;
+                policeSend.SerialNumber = orderDto.AreaCode + orderDto.No;
             }
+
+            //修改外部唯一ID
+            var orderData = await _dsOrderRepository.GetAsync(p => p.OrderId == orderDto.Id, cancellationToken);
+            if (orderData != null)
+            {
+                orderData.ExternalId = policeSend.AlarmReceiptNumber;
+                await _dsOrderRepository.UpdateAsync(orderData, cancellationToken);
+            }
+
+
             //查询是否有此工单,如果没有新增此工单
             var data = await _policeSendChainAlarmDsRepository.GetAsync(p => p.OrderId == orderDto.Id, cancellationToken);
             if (data == null)

+ 18 - 2
src/DataSharing.Host/Controllers/CityDataExchangeController.cs

@@ -1,4 +1,6 @@
-using DataSharing.Share.Dtos;
+using DataSharing.DataExchange;
+using DataSharing.Enterprise;
+using DataSharing.Share.Dtos;
 using DataSharing.Share.Dtos.DataExchange;
 using DotNetCore.CAP;
 using MapsterMapper;
@@ -8,6 +10,7 @@ using Microsoft.AspNetCore.Mvc;
 using System.Security.Cryptography;
 using System.Text;
 using XF.Domain.Filters;
+using XF.Domain.Repository;
 
 namespace DataSharing.Host.Controllers
 {
@@ -20,6 +23,7 @@ namespace DataSharing.Host.Controllers
         private readonly IMediator _mediator;
         private readonly ICapPublisher _capPublisher;
         private readonly IChannelConfigurationManager _channelConfigurationManager;
+        private readonly IRepository<DsReceiveDataExchangeData> _dsReceiveDataExchangeDataRepository;
 
         /// <summary>
         /// 
@@ -28,14 +32,17 @@ namespace DataSharing.Host.Controllers
         /// <param name="mediator"></param>
         /// <param name="capPublisher"></param>
         /// <param name="channelConfigurationManager"></param>
+        /// <param name="dsReceiveDataExchangeDataRepository"></param>
         public CityDataExchangeController(IMapper mapper, IMediator mediator,
             ICapPublisher capPublisher,
-            IChannelConfigurationManager channelConfigurationManager)
+            IChannelConfigurationManager channelConfigurationManager,
+            IRepository<DsReceiveDataExchangeData> dsReceiveDataExchangeDataRepository)
         {
             _mapper = mapper;
             _mediator = mediator;
             _capPublisher = capPublisher;
             _channelConfigurationManager = channelConfigurationManager;
+            _dsReceiveDataExchangeDataRepository = dsReceiveDataExchangeDataRepository;
         }
 
         /// <summary>
@@ -62,6 +69,15 @@ namespace DataSharing.Host.Controllers
             if (!string.IsNullOrEmpty(strResult))
                 return OpenResponse.Ok(DataExchangeDeReponse.Failed("-900", strResult));
 
+            //写入原始数据表
+            var data = new DsReceiveDataExchangeData()
+            {
+                ExternalId = cityDataReceiveDto.FSHCode,
+                ServiceInterface = "city_hand_data",
+                ReceiveData = System.Text.Json.JsonSerializer.Serialize(cityDataReceiveDto)
+            };
+            await _dsReceiveDataExchangeDataRepository.AddAsync(data, HttpContext.RequestAborted);
+
             Hotline.Share.Dtos.Order.AddOrderDto orderDto = new()
             {
                 Title = cityDataReceiveDto.Title,

+ 1 - 1
src/DataSharing.Host/Controllers/ConvergenceMediaController.cs

@@ -562,7 +562,7 @@ namespace DataSharing.Host.Controllers
         //            break;
         //    }
         //    data.Address = "四川省宜宾市" + areaName;
-        //  //  data.Files
+        //    //  data.Files
         //    //var result = await _mediator.Send(new ReceiveOrderNotify { AddOrderDto = data, Files = new List<FileDto>() }, HttpContext.RequestAborted);
         //    await _capPublisher.PublishAsync(DataSharing.Share.Mq.EventNames.SharingOrderCreation, data, cancellationToken: HttpContext.RequestAborted);
         //    return OpenResponse.Ok(ConvergenceMediaDeResponse<WriteOrderResponseDto>.Success(null, "上传成功"));

+ 1 - 2
src/DataSharing.Host/Controllers/EnterpriseController.cs

@@ -89,10 +89,9 @@ namespace DataSharing.Host.Controllers
             if (!string.IsNullOrEmpty(strResult))
                 return OpenResponse.Ok(EnterpriseDeResponse.Failed(description: strResult));
 
-            //var data = _mapper.Map<DsReceiveWriteResult>(dto);
             var data = new DsReceiveEnterpriseData()
             {
-                ReplyCode = dto.ReplyCode,
+                ExternalId = dto.ReplyCode,
                 ServiceInterface = "api/yb12345/enterprise/writeResult",
                 ReceiveData = System.Text.Json.JsonSerializer.Serialize(dto)
             };

+ 84 - 43
src/DataSharing.Host/Controllers/PoliceDSController.cs

@@ -1,4 +1,8 @@
-using DataSharing.Share.Dtos.DaoShu110;
+using DataSharing.DaoShu110;
+using DataSharing.Extensions;
+using DataSharing.RawData;
+using DataSharing.Share.Dtos;
+using DataSharing.Share.Dtos.DaoShu110;
 using DotNetCore.CAP;
 using MapsterMapper;
 using MediatR;
@@ -6,16 +10,10 @@ using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Converters;
-using Sharing.Share.Dtos.DataSharing.Province;
 using System.Net;
 using System.Text;
 using XF.Domain.Filters;
 using XF.Domain.Repository;
-using Hotline.Share.Dtos.Order;
-using DataSharing.Share.Dtos;
-using DataSharing.Extensions;
-using DataSharing.DaoShu110;
-using DataSharing.RawData;
 
 namespace DataSharing.Host.Controllers
 {
@@ -32,24 +30,30 @@ namespace DataSharing.Host.Controllers
         private readonly IRepository<DsPoliceSendChainAlarmDs> _dsPoliceSendChainAlarmDsRepository;
         private readonly IRepository<DsPoliceSendChainDealDs> _dsPoliceSendChainDealDsRepository;
         private readonly IRepository<DsKnowledgeRawData> _dsKnowledgeRawDataRepository;
+        private readonly IRepository<DsOrder> _dsOrderRepository;
+        private readonly IRepository<DsReceivePoliceData> _dsReceivePoliceDataRepository;
 
-       /// <summary>
-       /// 
-       /// </summary>
-       /// <param name="mapper"></param>
-       /// <param name="capPublisher"></param>
-       /// <param name="mediator"></param>
-       /// <param name="channelConfigurationManager"></param>
-       /// <param name="dsPoliceSendChainAlarmDsRepository"></param>
-       /// <param name="dsPoliceSendChainDealDsRepository"></param>
-       /// <param name="dsKnowledgeRawDataRepository"></param>
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="mapper"></param>
+        /// <param name="capPublisher"></param>
+        /// <param name="mediator"></param>
+        /// <param name="channelConfigurationManager"></param>
+        /// <param name="dsPoliceSendChainAlarmDsRepository"></param>
+        /// <param name="dsPoliceSendChainDealDsRepository"></param>
+        /// <param name="dsKnowledgeRawDataRepository"></param>
+        /// <param name="dsOrderRepository"></param>
+        /// <param name="dsReceivePoliceDataRepository"></param>
         public PoliceDSController(IMapper mapper,
             ICapPublisher capPublisher,
             IMediator mediator,
             IChannelConfigurationManager channelConfigurationManager,
             IRepository<DsPoliceSendChainAlarmDs> dsPoliceSendChainAlarmDsRepository,
             IRepository<DsPoliceSendChainDealDs> dsPoliceSendChainDealDsRepository,
-            IRepository<DsKnowledgeRawData> dsKnowledgeRawDataRepository)
+            IRepository<DsKnowledgeRawData> dsKnowledgeRawDataRepository,
+            IRepository<DsOrder> dsOrderRepository,
+            IRepository<DsReceivePoliceData> dsReceivePoliceDataRepository)
         {
             _mapper = mapper;
             _capPublisher = capPublisher;
@@ -58,6 +62,8 @@ namespace DataSharing.Host.Controllers
             _dsPoliceSendChainAlarmDsRepository = dsPoliceSendChainAlarmDsRepository;
             _dsPoliceSendChainDealDsRepository = dsPoliceSendChainDealDsRepository;
             _dsKnowledgeRawDataRepository = dsKnowledgeRawDataRepository;
+            _dsOrderRepository = dsOrderRepository;
+            _dsReceivePoliceDataRepository = dsReceivePoliceDataRepository;
         }
         #endregion
 
@@ -98,6 +104,8 @@ namespace DataSharing.Host.Controllers
                         // json 转 实体类
                         if (!string.IsNullOrEmpty(jsonRes))
                             chainAlarm = System.Text.Json.JsonSerializer.Deserialize<ChainAlarm_DS>(jsonRes);
+
+                        await InitRawData("service/api/ds/110To12345/chainAlarm", base64String, jsonRes, chainAlarm?.AlarmReceiptNumber);
                     }
 
                     #region 数据验证
@@ -114,7 +122,7 @@ namespace DataSharing.Host.Controllers
                     {
 
                         //组装业务系统工单数据
-                        AddOrderDto orderDto = new()
+                        Hotline.Share.Dtos.Order.AddOrderDto orderDto = new()
                         {
                             ExternalId = chainAlarm.AlarmReceiptNumber,
                             //   AcceptorStaffNo = policeReceive.RegisterNo,
@@ -207,6 +215,8 @@ namespace DataSharing.Host.Controllers
                         if (!string.IsNullOrEmpty(jsonRes))
                             // json 转 实体类
                             chainDeal = System.Text.Json.JsonSerializer.Deserialize<ChainDeal_DS>(jsonRes);
+
+                        await InitRawData("service/api/ds/110To12345/chainDeal", base64String, jsonRes, chainDeal?.AlarmReceiptNumber);
                     }
 
                     #region 数据验证
@@ -282,6 +292,8 @@ namespace DataSharing.Host.Controllers
                         if (!string.IsNullOrEmpty(jsonRes))
                             // json 转 实体类
                             openData = System.Text.Json.JsonSerializer.Deserialize<OpenData>(jsonRes);
+
+                        await InitRawData("service/api/ds/12345To110/chainAlarm", base64String, jsonRes, openData?.AlarmReceiptNumber);
                     }
                     bool bRun = true;
                     if (string.IsNullOrEmpty(openData.StartDate) || !IsDate(openData.StartDate))
@@ -369,6 +381,8 @@ namespace DataSharing.Host.Controllers
                         if (!string.IsNullOrEmpty(jsonRes))
                             // json 转 实体类
                             openData = System.Text.Json.JsonSerializer.Deserialize<OpenData>(jsonRes);
+
+                        await InitRawData("service/api/ds/12345To110/chainDeal", base64String, jsonRes, openData?.AlarmReceiptNumber);
                     }
                     bool bRun = true;
 
@@ -463,6 +477,8 @@ namespace DataSharing.Host.Controllers
                         if (!string.IsNullOrEmpty(jsonRes))
                             // json 转 实体类
                             get_Knowledge = System.Text.Json.JsonSerializer.Deserialize<Get_Knowledge>(jsonRes);
+
+                        await InitRawData("service/api/ds/get_knowledge_info", base64String, jsonRes, null);
                     }
 
                     bool bRun = true;
@@ -546,6 +562,8 @@ namespace DataSharing.Host.Controllers
                         if (!string.IsNullOrEmpty(jsonRes))
                             // json 转 实体类
                             get_Knowledge = System.Text.Json.JsonSerializer.Deserialize<Get_Knowledge>(jsonRes);
+
+                        await InitRawData("service/api/ds/get_knowledge_content", base64String, jsonRes, null);
                     }
 
                     if (string.IsNullOrEmpty(get_Knowledge.id))
@@ -584,6 +602,9 @@ namespace DataSharing.Host.Controllers
         #endregion
 
         #region 私有方法
+
+        #region 工单办结
+
         /// <summary>
         /// 工单办结
         /// </summary>
@@ -591,52 +612,72 @@ namespace DataSharing.Host.Controllers
         /// <returns></returns>
         private async Task InitChainDeal(ChainDeal_DS policeReceiveChainDealDs)
         {
+            var orderData = await _dsOrderRepository.GetAsync(p => p.ExternalId == policeReceiveChainDealDs.AlarmReceiptNumber);
+            if (orderData is null)
+                return;
+
             if (policeReceiveChainDealDs.DisposalType == 1)//正常办理
             {
-                OrderDto orderDto = new()
+                Hotline.Share.Dtos.DataSharing.PusherHotlineDto.OrderResultDto orderResultDto = new()
                 {
-                    ExternalId = policeReceiveChainDealDs.AlarmReceiptNumber,
-                    ActualHandleTime = Convert.ToDateTime(policeReceiveChainDealDs.FeedbackTime),
-                    ActualOpinion = policeReceiveChainDealDs.DisposalSituation,
-                    ActualHandlerId = policeReceiveChainDealDs.FeedbackPersonNumber,
-                    ActualHandlerName = policeReceiveChainDealDs.FeedbackPersonName,
-                    ActualHandleOrgCode = policeReceiveChainDealDs.FeedbackUnitCode,
-                    ActualHandleOrgName = policeReceiveChainDealDs.FeedbackUnitName
+                    OrderId = orderData.OrderId,
+                    FinishType = "1",
+                    Opinion = policeReceiveChainDealDs.DisposalSituation
                 };
-                // orderFlowDto.Order.ActualHandleTime = policeReceiveChainDealDs.WarehousingTime;
-                //orderFlowDto.Order.ActualOpinion = policeReceiveChainDealDs.DisposalSituation;
-                //向业务系统推送消息
-                //  await _capPublisher.PublishAsync(DataSharing.Share.Mq.EventNames.SharingPoliceHandle, orderDto, cancellationToken: HttpContext.RequestAborted);
+                await _capPublisher.PublishAsync(DataSharing.Share.Mq.EventNames.SharingOrderReultSend, orderResultDto, cancellationToken: HttpContext.RequestAborted);
+
             }
             else if (policeReceiveChainDealDs.DisposalType == 2)//退回 
             {
-                ReturnFeedbackDto feedbackDto = new()
+                Hotline.Share.Dtos.DataSharing.PusherHotlineDto.OrderResultDto orderResultDto = new()
                 {
-                    CaseSerial = policeReceiveChainDealDs.AlarmReceiptNumber,
-                    DealDept = policeReceiveChainDealDs.ReturnUnit,
-                    DealName = policeReceiveChainDealDs.ReturnName,
-                    ApplyTime = Convert.ToDateTime(policeReceiveChainDealDs.ReturnTime),
-                    Reason = policeReceiveChainDealDs.ReturnOpinion
+                    OrderId = orderData.OrderId,
+                    FinishType = "0",
+                    Opinion = policeReceiveChainDealDs.ReturnOpinion
                 };
                 //向业务系统推送消息
-                 // await _capPublisher.PublishAsync(DataSharing.Share.Mq.EventNames.SharingPoliceReturn, feedbackDto, cancellationToken: HttpContext.RequestAborted);
+                await _capPublisher.PublishAsync(DataSharing.Share.Mq.EventNames.SharingOrderReultSend, orderResultDto, cancellationToken: HttpContext.RequestAborted);
+
             }
             else if (policeReceiveChainDealDs.DisposalType == 3)//回访 
             {
-                PublishVisitDto publishVisitDto = new()
+                Hotline.Share.Dtos.Order.ProvinceOrderVisitDto orderVisitDto = new()
                 {
+                    ProvinceNo = orderData.ProvinceNo,
                     VisitTime = Convert.ToDateTime(policeReceiveChainDealDs.RevisitTime),
-                    VisitRemark = policeReceiveChainDealDs.VisitContent,
-                    SubjectResultSatifyCode = policeReceiveChainDealDs.VisitResult,
+                    VisitContent = policeReceiveChainDealDs.VisitContent,
+                    OrgProcessingResults = policeReceiveChainDealDs.VisitResult,
                     VisitType = Hotline.Share.Enums.Order.EVisitType.ArtificialVisit
                 };
-                publishVisitDto.Order.ExternalId = policeReceiveChainDealDs.AlarmReceiptNumber;
 
                 //向业务系统推送消息
-               //   await _capPublisher.PublishAsync(DataSharing.Share.Mq.EventNames.SharingPoliceVisit, publishVisitDto, cancellationToken: HttpContext.RequestAborted);
+                await _capPublisher.PublishAsync(DataSharing.Share.Mq.EventNames.SharingOrderEvlResult, orderVisitDto, cancellationToken: HttpContext.RequestAborted);
             }
+        }
+
+        #endregion
 
+        #region 写入原始数据
+        /// <summary>
+        /// 写入原始数据
+        /// </summary>
+        /// <param name="externalId"></param>
+        /// <param name="serviceInterface"></param>
+        /// <param name="receiveRawData"></param>
+        /// <param name="receiveData"></param>
+        /// <returns></returns>
+        private async Task InitRawData(string serviceInterface, string receiveRawData, string receiveData, string? externalId)
+        {
+            DsReceivePoliceData dsReceivePoliceData = new()
+            {
+                ExternalId = externalId,
+                ServiceInterface = serviceInterface,
+                ReceiveRawData = receiveRawData,
+                ReceiveData = receiveData
+            };
+            await _dsReceivePoliceDataRepository.AddAsync(dsReceivePoliceData, HttpContext.RequestAborted);
         }
+        #endregion
 
         #region 获取RAW传入的Base64_Json
         /// <summary>

+ 37 - 0
src/DataSharing/DaoShu110/DsReceivePoliceData.cs

@@ -0,0 +1,37 @@
+using SqlSugar;
+using System.ComponentModel;
+using XF.Domain.Repository;
+
+namespace DataSharing.DaoShu110
+{
+    /// <summary>
+    /// 110交换调用接口数据
+    /// </summary>
+    [Description("110交换调用接口数据")]
+    public class DsReceivePoliceData : CreationModificationEntity
+    {
+        /// <summary>
+        /// 外部工单编号,唯一标识  
+        /// </summary>
+        [SugarColumn(ColumnDescription = "外部工单编号,唯一标识", ColumnDataType = "varchar(50)")]
+        public string? ExternalId { get; set; }
+
+        /// <summary>
+        /// 服务接口名称
+        /// </summary>
+        [SugarColumn(ColumnDescription = "服务接口名称", ColumnDataType = "varchar(100)")]
+        public string? ServiceInterface { get; set; }
+
+        /// <summary>
+        /// 接收原始数据
+        /// </summary>
+        [SugarColumn(ColumnDescription = "接收原始数据", ColumnDataType = "text")]
+        public string? ReceiveRawData { get; set; }
+
+        /// <summary>
+        /// 接收解密数据数据
+        /// </summary>
+        [SugarColumn(ColumnDescription = "接收解密数据数据", ColumnDataType = "text")]
+        public string? ReceiveData { get; set; }
+    }
+}

+ 32 - 0
src/DataSharing/DataExchange/DsReceiveDataExchangeData.cs

@@ -0,0 +1,32 @@
+using SqlSugar;
+using System.ComponentModel;
+using XF.Domain.Repository;
+
+namespace DataSharing.DataExchange
+{
+    /// <summary>
+    /// 数据交换调用接口数据
+    /// </summary>
+    [Description("企业服务调用接口数据")]
+    public class DsReceiveDataExchangeData : CreationModificationEntity
+    {
+        /// <summary>
+        /// 外部工单编号,唯一标识  
+        /// </summary>
+        [SugarColumn(ColumnDescription = "外部工单编号,唯一标识", ColumnDataType = "varchar(50)")]
+        public string? ExternalId { get; set; }
+
+        /// <summary>
+        /// 服务接口名称
+        /// </summary>
+        [SugarColumn(ColumnDescription = "服务接口名称", ColumnDataType = "varchar(100)")]
+        public string? ServiceInterface { get; set; }
+
+        /// <summary>
+        /// 推送数据
+        /// </summary>
+        [SugarColumn(ColumnDescription = "推送数据", ColumnDataType = "text")]
+        public string? ReceiveData { get; set; }
+
+    }
+}

+ 2 - 2
src/DataSharing/Enterprise/DsReceiveEnterpriseData.cs

@@ -12,10 +12,10 @@ namespace DataSharing.Enterprise
     public class DsReceiveEnterpriseData : CreationModificationEntity
     {
         /// <summary>
-        /// 工单编号,唯一标识  
+        /// 外部工单编号,唯一标识  
         /// </summary>
         [SugarColumn(ColumnDescription = "工单编号,唯一标识", ColumnDataType = "varchar(50)")]
-        public string? ReplyCode { get; set; }
+        public string? ExternalId { get; set; }
 
         /// <summary>
         /// 服务接口名称

+ 6 - 0
src/DataSharing/RawData/DsOrder.cs

@@ -36,6 +36,12 @@ namespace DataSharing.RawData
         [SugarColumn(ColumnDescription = "上传省工单编号", ColumnDataType = "varchar(50)")]
         public string? ProvinceNo { get; set; }
 
+        /// <summary>
+        /// 外部编号
+        /// </summary>
+        [SugarColumn(ColumnDescription = "外部编号", ColumnDataType = "varchar(50)")]
+        public string? ExternalId { get; set; }
+
         /// <summary>
         /// 信件查询密码
         /// </summary>