TANG JIANG 1 tahun lalu
induk
melakukan
55711841c4

+ 0 - 1
src/Sharing.Api/ProvinceService.cs

@@ -395,7 +395,6 @@ namespace Sharing.Api
             if (orderExtension is null)
                 return;
 
-
             //工单类型
             string formType = orderExtension.OrderTypeCode;
 

+ 161 - 1
src/Sharing.Application/Mappers/MapperConfigs.cs

@@ -218,7 +218,6 @@ namespace Sharing.Application.Mappers
            .Map(d => d.CaseSerial, x => x.Order.ProvinceNo)
            ;
 
-
             #region 汇聚扩展数据--拓展信息
 
             //医疗工单
@@ -380,6 +379,167 @@ namespace Sharing.Application.Mappers
 
             #endregion
 
+            #region 协同扩展数据--拓展信息
+
+            //医疗工单
+            config.ForType<FormMedical, OrderExtensionDto>()
+            .Ignore(d => d.Id)
+            .Map(d => d.MedName, x => x.MedicalName)
+            .Map(d => d.MedAddress, x => x.MedicalAddr)
+            .Map(d => d.MedDepartment, x => x.DepartMent)
+            .Map(d => d.MedDoctor, x => x.Doctor)
+            .Map(d => d.MedPatient, x => x.PatientName)
+            .Map(d => d.MedNo, x => x.ClinicCardNum)
+            .Map(d => d.MedIdNo, x => x.CardNum)
+            ;
+
+            //四川政务服务网技术工单
+            config.ForType<FormNetWorktec, OrderExtensionDto>()
+            .Ignore(d => d.Id)
+            .Map(d => d.ZwfwwAccount, x => x.ZwfwAccount)
+            .Map(d => d.ZwfwwContact, x => x.LinkPeson)
+            ;
+
+            //电视购物及商铺购买退换货工单
+            config.ForType<FormReturnexChange, OrderExtensionDto>()
+            .Ignore(d => d.Id)
+            .Map(d => d.ExchTv, x => x.SubjectName)
+            .Map(d => d.ExchTradeTime, x => x.PurchaseTime)
+            .Map(d => d.ExchProduct, x => x.ProductName)
+            .Map(d => d.ExchAmount, x => x.Charge)
+            .Map(d => d.ExchName, x => x.BusinessName)
+            .Map(d => d.ExchAddress, x => x.BusunessAddr)
+            .Map(d => d.ExchConsignee, x => x.ReceivePerson)
+            .Map(d => d.ExchConsigneeAddress, x => x.ReceiveAddr)
+            ;
+
+            //高速公路工单
+            config.ForType<FormExpressWay, OrderExtensionDto>()
+            .Ignore(d => d.Id)
+            .Map(d => d.ExpwyEntrance, x => x.InWay)
+            .Map(d => d.ExpwyExit, x => x.OutWay)
+            .Map(d => d.ExpwyTime, x => x.OperateDate)
+            .Map(d => d.ExpwyNo, x => x.CardNum)
+            ;
+
+            //电视台虚假广告工单
+            config.ForType<FormShamPub, OrderExtensionDto>()
+            .Ignore(d => d.Id)
+            .Map(d => d.AdTv, x => x.SubjectName)
+            .Map(d => d.AdProduct, x => x.ProductName)
+            .Map(d => d.AdContent, x => x.PubContent)
+            ;
+
+            //12366热线诉求交办
+            config.ForType<FormTaxationComplaint, OrderExtensionDto>()
+            .Ignore(d => d.Id)
+            .Map(d => d.Location12366Sq, x => x.TaxAuthority)
+            .Map(d => d.Info12366Sq, x => x.ComplaintSubject)
+            .Map(d => d.Type12366Sq, x => x.ComplaintType)
+            ;
+
+            //12366热线咨询交办
+            config.ForType<FormTaxationConsulting, OrderExtensionDto>()
+            .Ignore(d => d.Id)
+            .Map(d => d.Location12366Zx, x => x.TaxAuthority)
+            .Map(d => d.Info12366Zx, x => x.ComplaintSubject)
+            ;
+
+            //12328服务监督
+            config.ForType<FormTraffic, OrderExtensionDto>()
+            .Ignore(d => d.Id)
+            .Map(d => d.AcceptType12328, x => x.AcceptType)
+            .Map(d => d.Client12328, x => x.Customer)
+            ;
+
+            //邮政业消费者申诉
+            config.ForType<FormPost, OrderExtensionDto>()
+            .Ignore(d => d.Id)
+            .Map(d => d.MailClaimantName, x => x.AppealName)
+            .Map(d => d.MailClaimantPhone, x => x.AppealNum)
+            .Map(d => d.MailClaimantEnterprise, x => x.AppealEnterprise)
+            .Map(d => d.MailSenderName, x => x.SenderName)
+            .Map(d => d.MailSenderPhone, x => x.SenderNum)
+            .Map(d => d.MailSenderAddress, x => x.SenderAddr)
+            .Map(d => d.MailReceiverName, x => x.AddresseeName)
+            .Map(d => d.MailReceiverPhone, x => x.AddresseeNum)
+            .Map(d => d.MailReceiverAddress, x => x.AddresseeAddr)
+            .Map(d => d.MailAmount, x => x.InsuredPrice)
+            //   .Map(d => d.MailIsContacted, x => x.  IsContact == true ? "是" : "否")
+            .Map(d => d.MailResult, x => x.OperateResult)
+            ;
+
+            //环保举报业务
+            config.ForType<FormEnvironMent, OrderExtensionDto>()
+            .Ignore(d => d.Id)
+            .Map(d => d.EpEmail, x => x.ComplaintMailBox)
+            .Map(d => d.EpAddress, x => x.PostalAddress)
+            .Map(d => d.EpObject, x => x.ReportObject)
+            .Map(d => d.EpObjectAddress, x => x.DetailedAddr)
+            .Map(d => d.EpIndustryType, x => x.IndustryType)
+            .Map(d => d.EpKeyPoint, x => x.KeyPoint)
+            ;
+
+            //12315个性化表单--投诉、举报
+            config.ForType<FormMarket, OrderExtensionDto>()
+            .Ignore(d => d.Id)
+            .Map(d => d.ComplainClassifyCode, x => x.ApplBasQue)
+            .Map(d => d.ComplainClassify, x => x.ApplBasQueName)
+            .Map(d => d.PatentNo, x => x.Zlh)
+            .Map(d => d.Patentee, x => x.Zlqr)
+            .Map(d => d.PatentName, x => x.Fmmc)
+            .Map(d => d.PatentTypeCode, x => x.Zllx)
+            .Map(d => d.PatentType, x => x.ZllxMc)
+            .Map(d => d.BusinessPosition.AreaCode, x => x.Accsce)
+            .Map(d => d.BusinessPosition.FullAddress, x => x.Sfdd)
+            .Map(d => d.OccurrenceTime, x => x.ControversyTime)
+            .Map(d => d.ObjectClassifyCode, x => x.OBType)
+            .Map(d => d.ObjectClassify, x => x.OBTypeName)
+            .Map(d => d.ObjectClassify, x => x.MdseName)
+            .Map(d => d.SalesModeCode, x => x.SaleMode)
+            .Map(d => d.ComplainTargetCode, x => x.DsptType)
+            .Map(d => d.ECommercePlatformCode, x => x.DsptCode)
+            .Map(d => d.ECommercePlatform, x => x.DsptName)
+            .Map(d => d.BrandCode, x => x.BrandCode)
+            .Map(d => d.Brand, x => x.BrandName)
+            .Map(d => d.ExternalOrderNo, x => x.BIdNo)
+            .Map(d => d.Amount, x => x.InvoAm)
+            .Map(d => d.SalesChannelCode, x => x.Jtqdtype)
+            .Map(d => d.SalesChannel, x => x.Jtqdname)
+            .Map(d => d.ProductName, x => x.ProdName)
+            .Map(d => d.ApprovalNumber, x => x.ProdAppNo)
+            .Map(d => d.ProductBatchNo, x => x.ProdPatchNo)
+            .Map(d => d.ProductStandard, x => x.ProdTypeSpf)
+            .Map(d => d.Manufacturer, x => x.ProdFty)
+            .Map(d => d.SalesEnterprise, x => x.ProdSalEnt)
+            .Map(d => d.ProductExpiredTime, x => x.ProdValid)
+            .Map(d => d.ConsumerAddress, x => x.ProviderAddr)
+            .Map(d => d.EnterpriseName, x => x.Invopt)
+            .Map(d => d.IndustryClassifyCode, x => x.UBindType)
+            .Map(d => d.IndustryClassify, x => x.UBindTypeName)
+            .Map(d => d.MarketTypeCode, x => x.EntType)
+            .Map(d => d.MarketType, x => x.EntTypeName)
+            .Map(d => d.RegisterAddress, x => x.Addr)
+            .Map(d => d.EnterpriseContact, x => x.Sjztlxr)
+            .Map(d => d.UnifiedSocialCreditCode, x => x.Nbxh)
+            .Map(d => d.RegisterNumber, x => x.RegNo)
+            .Map(d => d.LicenceTypeCode, x => x.CertType)
+            .Map(d => d.LicenceType, x => x.CertTypeName)
+            .Map(d => d.LicenceNo, x => x.CertNo)
+            .Map(d => d.IdentityTypeCode, x => x.ReveType)
+            .Map(d => d.IdentityType, x => x.ReveTypeName)
+            .Map(d => d.NationalityCode, x => x.Nationality)
+            .Map(d => d.Nationality, x => x.NationalityName)
+            .Map(d => d.NationCode, x => x.Folk)
+            .Map(d => d.Nation, x => x.FolkName)
+            .Map(d => d.IdentityCode, x => x.Peride)
+            .Map(d => d.Identity, x => x.PerideName)
+            .Map(d => d.Email, x => x.ProviderMail)
+            .Map(d => d.OtherContact, x => x.Qtlxfs)
+            ;
+
+            #endregion
+
             #region 市州数据交换
             //市州数据-接受
             config.ForType<CityDataReceive, OrderDto>()

+ 8 - 4
src/Sharing.Application/Province/PushDataBgService.cs

@@ -1,7 +1,6 @@
 using MediatR;
 using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.Hosting;
-using Sharing.Notifications.HuiJu;
 using Sharing.Province.HuiJu.Send;
 using Sharing.Province.Other;
 using Sharing.Province.XieTong.Receive;
@@ -45,6 +44,7 @@ namespace Sharing.Application.Province
                        .Queryable()
                        .OrderByDescending(p => p.Priority)
                        .ToListAsync();
+                var isContinue = true;
                 if (listData != null && listData.Count > 0)
                 {
                     List<SubmitCaseProcess> submitCaseProcesses = new(); //服务工单处理过程
@@ -93,12 +93,16 @@ namespace Sharing.Application.Province
 
                     //附件上传处理  
                     if (getCaseMaterialInfos != null && getCaseMaterialInfos.Count > 0) { }
-                   // await _mediator.Publish(new GetCaseMaterialInfoNotification(getCaseMaterialInfos));
+                    // await _mediator.Publish(new GetCaseMaterialInfoNotification(getCaseMaterialInfos));
                 }
                 else
-                {
+                    isContinue = false;
+
+                //请求查询
+
+
+                if (!isContinue)
                     await Task.Delay(time, stoppingToken);
-                }
             }
         }
     }

+ 34 - 16
src/Sharing.Province/Controllers/ReceiveController.cs

@@ -11,7 +11,6 @@ using Sharing.Province.Dtos.XieTong.Receive;
 using Sharing.Province.Extend;
 using Sharing.Province.XieTong.Receive;
 using Sharing.Share.Dtos;
-using Sharing.Share.Dtos.Extend;
 using Sharing.WebCore;
 using XF.Domain.Repository;
 
@@ -649,10 +648,13 @@ namespace Sharing.Province.Controllers
             if (!string.IsNullOrEmpty(id))
                 return Reponse.Failed("数据提交失败");
 
-            ReceiveCaseExtendsDto extendsDto = new()
+            AddOrderDto orderDto = new()
             {
-                CaseSerial = data.CaseSerial,
-                FormType = data.FormType
+                ProvinceNo = data.CaseSerial
+            };
+            OrderExtensionDto orderExtension = new()
+            {
+                OrderTypeCode = data.FormType.ToLower()
             };
             //扩展信息写入
             switch (data.FormType.ToLower())
@@ -663,7 +665,8 @@ namespace Sharing.Province.Controllers
                     dtoyl.RCEId = id;
                     //添加数据
                     await _formMedicalRepository.AddAsync(dtoyl, HttpContext.RequestAborted);
-                    extendsDto.FormMedical = _mapper.Map<FormMedicalInfoDto>(dtoyl);
+                    orderExtension = _mapper.Map<OrderExtensionDto>(dtoyl);
+                    orderExtension.OrderType = "医疗服务中心受理单";
                     break;
                 case "zwfw"://四川政务服务网技术工单
                     //转换数据
@@ -671,7 +674,8 @@ namespace Sharing.Province.Controllers
                     dtozwfw.RCEId = id;
                     //添加数据
                     await _formNetWorktecRepository.AddAsync(dtozwfw, HttpContext.RequestAborted);
-                    extendsDto.FormNetWorktec = _mapper.Map<FormNetWorktecInfoDto>(dtozwfw);
+                    orderExtension = _mapper.Map<OrderExtensionDto>(dtozwfw);
+                    orderExtension.OrderType = "四川政务服务网技术中心受理单";
                     break;
                 case "th"://电视购物及商铺购买退换货工单
                     //转换数据
@@ -679,7 +683,8 @@ namespace Sharing.Province.Controllers
                     dtoth.RCEId = id;
                     //添加数据
                     await _formReturnexChangeRepository.AddAsync(dtoth, HttpContext.RequestAborted);
-                    extendsDto.FormReturnexChange = _mapper.Map<FormReturnexChangeInfoDto>(dtoth);
+                    orderExtension = _mapper.Map<OrderExtensionDto>(dtoth);
+                    orderExtension.OrderType = "电视购物及商铺购买退换货中心受理单";
                     break;
                 case "gsgl"://高速公路工单
                     //转换数据
@@ -687,7 +692,8 @@ namespace Sharing.Province.Controllers
                     dtogsgl.RCEId = id;
                     //添加数据
                     await _formExpressWayRepository.AddAsync(dtogsgl, HttpContext.RequestAborted);
-                    extendsDto.FormExpressWay = _mapper.Map<FormExpressWayInfoDto>(dtogsgl);
+                    orderExtension = _mapper.Map<OrderExtensionDto>(dtogsgl);
+                    orderExtension.OrderType = "高速公路投诉中心受理单";
                     break;
                 case "xjgg"://电视台虚假广告工单
                     //转换数据
@@ -695,7 +701,8 @@ namespace Sharing.Province.Controllers
                     dtoxjgg.RCEId = id;
                     //添加数据
                     await _formShamPubRepository.AddAsync(dtoxjgg, HttpContext.RequestAborted);
-                    extendsDto.FormShamPub = _mapper.Map<FormShamPubInfoDto>(dtoxjgg);
+                    orderExtension = _mapper.Map<OrderExtensionDto>(dtoxjgg);
+                    orderExtension.OrderType = "电视台虚假广告中心受理单";
                     break;
                 case "swfwsq"://12366热线诉求交办
                     //转换数据
@@ -703,7 +710,8 @@ namespace Sharing.Province.Controllers
                     dtoswfwsq.RCEId = id;
                     //添加数据
                     await _formTaxationComplaintRepository.AddAsync(dtoswfwsq, HttpContext.RequestAborted);
-                    extendsDto.FormTaxationComplaint = _mapper.Map<FormTaxationComplaintInfoDto>(dtoswfwsq);
+                    orderExtension = _mapper.Map<OrderExtensionDto>(dtoswfwsq);
+                    orderExtension.OrderType = "四川省12366热线诉求交办单";
                     break;
                 case "swfwzx"://12366热线咨询交办
                     //转换数据
@@ -711,7 +719,8 @@ namespace Sharing.Province.Controllers
                     dtoswfwzx.RCEId = id;
                     //添加数据
                     await _formTaxationConsultingRepository.AddAsync(dtoswfwzx, HttpContext.RequestAborted);
-                    extendsDto.FormTaxationConsulting = _mapper.Map<FormTaxationConsultingInfoDto>(dtoswfwzx);
+                    orderExtension = _mapper.Map<OrderExtensionDto>(dtoswfwzx);
+                    orderExtension.OrderType = "四川省12366热线咨询交办单";
                     break;
                 case "jtfwjd"://12328服务监督
                     //转换数据
@@ -719,7 +728,8 @@ namespace Sharing.Province.Controllers
                     dtojtfwjd.RCEId = id;
                     //添加数据
                     await _formTrafficRepository.AddAsync(dtojtfwjd, HttpContext.RequestAborted);
-                    extendsDto.FormTraffic = _mapper.Map<FormTrafficInfoDto>(dtojtfwjd);
+                    orderExtension = _mapper.Map<OrderExtensionDto>(dtojtfwjd);
+                    orderExtension.OrderType = "12328服务监督中心受理单";
                     break;
                 case "yzxf"://邮政业消费者申诉
                     //转换数据
@@ -727,7 +737,8 @@ namespace Sharing.Province.Controllers
                     dtoyzxf.RCEId = id;
                     //添加数据
                     await _formPostRepository.AddAsync(dtoyzxf, HttpContext.RequestAborted);
-                    extendsDto.FormPost = _mapper.Map<FormPostInfoDto>(dtoyzxf);
+                    orderExtension = _mapper.Map<OrderExtensionDto>(dtoyzxf);
+                    orderExtension.OrderType = "邮政业消费者申诉受理单";
                     break;
                 case "hbjb"://环保举报业务
                     //转换数据
@@ -735,7 +746,8 @@ namespace Sharing.Province.Controllers
                     dtohbjb.RCEId = id;
                     //添加数据
                     await _formEnvironMentRepository.AddAsync(dtohbjb, HttpContext.RequestAborted);
-                    extendsDto.FormEnvironMent = _mapper.Map<FormEnvironMentInfoDto>(dtohbjb);
+                    orderExtension = _mapper.Map<OrderExtensionDto>(dtohbjb);
+                    orderExtension.OrderType = "环保举报业务受理单";
                     break;
                 case "scjgj"://12315个性化表单
                     break;
@@ -743,11 +755,17 @@ namespace Sharing.Province.Controllers
                     break;
             }
 
+            orderDto.OrderExtension = orderExtension;
             if (!string.IsNullOrEmpty(id))
             {
                 //向业务系统推送消息
-                await _capPublisher.PublishAsync(Sharing.Share.Mq.EventNames.SharingOrderExtends, extendsDto, cancellationToken: HttpContext.RequestAborted);
-                return Reponse.Success("您已成功提交数据!");
+                //  await _capPublisher.PublishAsync(Sharing.Share.Mq.EventNames.SharingOrderExtends, orderExtension, cancellationToken: HttpContext.RequestAborted);
+                var result = await _hotlineClient.AddOrderAsync(orderDto, HttpContext.RequestAborted);
+                if (result.IsSuccess)
+                    return Reponse.Success("您已成功提交数据!");
+                else
+                    return Reponse.Failed("接口调用失败!");
+
             }
             else
                 return Reponse.Failed("接口调用失败!");

+ 13 - 0
src/Sharing.Province/DefaultPusher.cs

@@ -1,6 +1,7 @@
 using Sharing.Province.Dtos;
 using Sharing.Province.Dtos.HuiJu.Send;
 using Sharing.Province.Dtos.XieTong.Knowledge;
+using Sharing.Province.Dtos.XieTong.Receive;
 using Sharing.Province.Dtos.XieTong.Send;
 
 namespace Sharing.Province;
@@ -269,6 +270,18 @@ public class DefaultPusher : IProvincePusher
         var response = await _xieTongClient.RequestAsync<SendRemindCaseInfoRequest, ProvinceResponse>(request, cancellationToken);
         return response?.ReturnInfo;
     }
+
+    /// <summary>
+    /// 服务工单上报12315过程信息查询
+    /// </summary>
+    /// <param name="request"></param>
+    /// <param name="cancellationToken"></param>
+    /// <returns></returns>
+    public async Task<ProvinceDistrecordResponse> PushGetCaseDistrecordSendAsync(GetCaseDistrecordSendRequest request, CancellationToken cancellationToken)
+    {
+        var response = await _xieTongClient.RequestAsync<GetCaseDistrecordSendRequest, ProvinceDistrecordResponse>(request, cancellationToken);
+        return response;
+    }
     #endregion
 
     #region 协同-第四批次

+ 73 - 0
src/Sharing.Province/Dtos/ProvinceDistrecordResponse.cs

@@ -0,0 +1,73 @@
+using Sharing.Province.Dtos.XieTong.Receive;
+
+namespace Sharing.Province.Dtos
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public class ProvinceDistrecordResponse
+    {
+        /// <summary>
+        /// 
+        /// </summary>
+        public StatusModel status { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public CustomModel custom { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public ReturnInfoModel ReturnInfo { get; set; }
+    }
+
+    /// <summary>
+    /// 
+    /// </summary>
+    public class StatusModel
+    {
+        /// <summary>
+        /// 
+        /// </summary>
+        public string code { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string text { get; set; }
+    }
+
+    /// <summary>
+    /// 
+    /// </summary>
+    public class CustomModel
+    {
+        /// <summary>
+        /// 
+        /// </summary>
+        public List<GetCaseDistrecordSendModel> STEP_List { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string CASE_SERIAL { get; set; }
+    }
+
+    /// <summary>
+    /// 
+    /// </summary>
+    public class ReturnInfoModel
+    {
+        /// <summary>
+        /// 
+        /// </summary>
+        public string Code { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public string Description { get; set; }
+    }
+}

+ 156 - 0
src/Sharing.Province/Dtos/XieTong/Receive/GetCaseDistrecordSendRequest.cs

@@ -0,0 +1,156 @@
+using Microsoft.AspNetCore.Http;
+using Sharing.Province.XieTong.Receive;
+using System.Text.Json.Serialization;
+
+namespace Sharing.Province.Dtos.XieTong.Receive
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public class GetCaseDistrecordSendRequest : ProvinceRequest<GetCaseDistrecordSendInfo>
+    {
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <returns></returns>
+        public override string GetRequestUrl() => "delay_case_info_send";
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <returns></returns>
+        public override string GetHttpMethod() => HttpMethods.Post;
+    }
+
+    /// <summary>
+    /// 
+    /// </summary>
+    public class GetCaseDistrecordSendInfo
+    {
+        /// <summary>
+        /// 服务工单编号 
+        /// </summary>
+        [JsonPropertyName("CASE_SERIAL")]
+        public string CaseSerial { get; set; }
+    }
+
+    /// <summary>
+    /// 
+    /// </summary>
+    public class GetCaseDistrecordSendModel
+    {
+        /// <summary>
+        ///  
+        /// </summary>
+        [JsonPropertyName("operatorguid")]
+        public string OperatorGuid { get; set; }
+
+        /// <summary>
+        ///  
+        /// </summary>
+        [JsonPropertyName("cliengguid")]
+        public string CliengGuid { get; set; }
+
+        /// <summary>
+        ///  
+        /// </summary>
+        [JsonPropertyName("createtime")]
+        public DateTime? CreateTime { get; set; }
+
+        /// <summary>
+        ///  收到时间
+        /// </summary>
+        [JsonPropertyName("batchno")]
+        public string? BatchNo { get; set; }
+
+        /// <summary>
+        ///  节点
+        /// </summary>
+        [JsonPropertyName("nodetype")]
+        public string? NodeType { get; set; }
+
+        /// <summary>
+        ///  操作
+        /// </summary>
+        [JsonPropertyName("operatestatus")]
+        public string? OperateStatus { get; set; }
+
+        /// <summary>
+        ///  操作
+        /// </summary>
+        [JsonPropertyName("operatorouguid")]
+        public string? OperatorouGuid { get; set; }
+
+        /// <summary>
+        ///  步骤
+        /// </summary>
+        [JsonPropertyName("activityguid")]
+        public string? ActivityGuid { get; set; }
+
+        /// <summary>
+        ///  操作人名
+        /// </summary>
+        [JsonPropertyName("operateusername")]
+        public string? OperateUserName { get; set; }
+
+        /// <summary>
+        ///  操作部门
+        /// </summary>
+        [JsonPropertyName("operatorouname")]
+        public string? OperatorouName { get; set; }
+
+        /// <summary>
+        ///  唯一ID
+        /// </summary>
+        [JsonPropertyName("rowguid")]
+        public string? RowGuid { get; set; }
+
+        /// <summary>
+        ///  
+        /// </summary>
+        [JsonPropertyName("tguid")]
+        public string? Tguid { get; set; }
+
+        /// <summary>
+        ///  
+        /// </summary>
+        [JsonPropertyName("cguid")]
+        public string? Cguid { get; set; }
+
+        /// <summary>
+        ///  
+        /// </summary>
+        [JsonPropertyName("operatedate")]
+        public DateTime? OperateDate { get; set; }
+
+        /// <summary>
+        ///  
+        /// </summary>
+        [JsonPropertyName("first_tguid")]
+        public string? FirstTguid { get; set; }
+
+        /// <summary>
+        ///处理时间
+        /// </summary>
+        [JsonPropertyName("handletime")]
+        public DateTime? HandleTime { get; set; }
+
+        /// <summary>
+        ///  处理意见
+        /// </summary>
+        [JsonPropertyName("handleopinion")]
+        public string? HandleOpinion { get; set; }
+
+        /// <summary>
+        ///  
+        /// </summary>
+        [JsonPropertyName("operatetype")]
+        public string? OperateType { get; set; }
+
+        /// <summary>
+        ///  处理人员
+        /// </summary>
+        [JsonPropertyName("operatorname")]
+        public string? OperatorName { get; set; }
+    }
+}

+ 2 - 1
src/Sharing.Province/Dtos/XieTong/Receive/ReceiveCaseExtendsRequest.cs

@@ -25,7 +25,7 @@ namespace Sharing.Province.Dtos.XieTong.Receive
     public class ReceiveCaseExtendsModel
     {
         /// <summary>
-        /// 服务工单编号
+        /// 服务工单编号 
         /// </summary>
         [JsonPropertyName("CASE_SERIAL")]
         [MDisplayName("服务工单编号")]
@@ -101,5 +101,6 @@ namespace Sharing.Province.Dtos.XieTong.Receive
         /// </summary>
         [JsonPropertyName("FORM_ENVIRONMENT")]
         public FormEnvironMentInfo FormEnvironMent { get; set; }
+
     }
 }

+ 84 - 0
src/Sharing.Province/Handlers/XieTong/GetCaseDistrecordSendHandler.cs

@@ -0,0 +1,84 @@
+using Hotline.Api.Sdk;
+using MapsterMapper;
+using MediatR;
+using Sharing.Notifications.XieTong;
+using Sharing.Province.Dtos.XieTong.Receive;
+using Sharing.Province.XieTong.Receive;
+using XF.Domain.Repository;
+
+namespace Sharing.Province.Handlers.XieTong
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public class GetCaseDistrecordSendHandler : INotificationHandler<GetCaseDistrecordSendNotification>
+    {
+        private readonly IChannelConfigurationManager _channelConfigurationManager;
+        private readonly PusherProvider _pusherProvider;
+        private readonly IMapper _mapper;
+        private readonly IRepository<GetCaseDistrecordSend> _getCaseDistrecordSendRepository;
+        private readonly IHotlineClient _hotlineClient;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="channelConfigurationManager"></param>
+        /// <param name="pusherProvider"></param>
+        /// <param name="mapper"></param>
+        /// <param name="getCaseDistrecordSendRepository"></param>
+        /// <param name="hotlineClient"></param>
+        public GetCaseDistrecordSendHandler(IChannelConfigurationManager channelConfigurationManager, PusherProvider pusherProvider, IMapper mapper
+            , IRepository<GetCaseDistrecordSend> getCaseDistrecordSendRepository, IHotlineClient hotlineClient)
+        {
+            _channelConfigurationManager = channelConfigurationManager;
+            _pusherProvider = pusherProvider;
+            _mapper = mapper;
+            _getCaseDistrecordSendRepository = getCaseDistrecordSendRepository;
+            _hotlineClient = hotlineClient;
+        }
+
+        /// <summary>
+        /// 服务工单上报12315过程信息查询
+        /// </summary>
+        /// <param name="notification"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public async Task Handle(GetCaseDistrecordSendNotification notification, CancellationToken cancellationToken = default)
+        {
+            var pusher = _pusherProvider.CreatePusher(_channelConfigurationManager);
+
+            var request = new GetCaseDistrecordSendRequest();
+
+            request.SetData(new GetCaseDistrecordSendInfo()
+            {
+                CaseSerial = notification.Data
+            });
+
+            var response = await pusher.PushGetCaseDistrecordSendAsync(request, cancellationToken);
+
+            if (response is null || response.status is null || response.custom is null)
+                return;
+
+            if (response.status.code != "1")
+                return;
+
+            //这里处理业务
+            if (response.custom.STEP_List != null && response.custom.STEP_List.Count > 0)
+            {
+                //遍历返回的数据
+                foreach (var item in response.custom.STEP_List)
+                {
+                    //检测当前数据是否存在,如果存在不处理,不存在新增到数据库并推送到业务系统
+                    if (!await _getCaseDistrecordSendRepository.AnyAsync(p => p.CaseSerial == response.custom.CASE_SERIAL && p.RowGuid == item.RowGuid))
+                    {
+                        var tempData = _mapper.Map<GetCaseDistrecordSend>(item);
+                        await _getCaseDistrecordSendRepository.AddAsync(tempData);
+
+                        //这里调用业务接口,推送办理数据
+                        //  _hotlineClient.AddOrderAsync();
+                    }
+                }
+            }
+        }
+    }
+}

+ 9 - 0
src/Sharing.Province/IProvincePusher.cs

@@ -1,6 +1,7 @@
 using Sharing.Province.Dtos;
 using Sharing.Province.Dtos.HuiJu.Send;
 using Sharing.Province.Dtos.XieTong.Knowledge;
+using Sharing.Province.Dtos.XieTong.Receive;
 using Sharing.Province.Dtos.XieTong.Send;
 namespace Sharing.Province;
 
@@ -175,6 +176,14 @@ public interface IProvincePusher
     /// <param name="cancellationToken"></param>
     /// <returns></returns>
     Task<BaseProvinceResponse> PushSendRemindCaseInfoAsync(SendRemindCaseInfoRequest request, CancellationToken cancellationToken);
+
+    /// <summary>
+    /// 服务工单上报12315过程信息查询
+    /// </summary>
+    /// <param name="request"></param>
+    /// <param name="cancellationToken"></param>
+    /// <returns></returns>
+    Task<ProvinceDistrecordResponse> PushGetCaseDistrecordSendAsync(GetCaseDistrecordSendRequest request, CancellationToken cancellationToken);
     #endregion
 
     #region 协同-第四批次

+ 12 - 0
src/Sharing.Province/SmartPusher.cs

@@ -1,6 +1,7 @@
 using Sharing.Province.Dtos;
 using Sharing.Province.Dtos.HuiJu.Send;
 using Sharing.Province.Dtos.XieTong.Knowledge;
+using Sharing.Province.Dtos.XieTong.Receive;
 using Sharing.Province.Dtos.XieTong.Send;
 
 namespace Sharing.Province;
@@ -235,6 +236,17 @@ public class SmartPusher : IProvincePusher
     {
         throw new NotImplementedException();
     }
+
+    /// <summary>
+    /// 服务工单上报12315过程信息查询
+    /// </summary>
+    /// <param name="request"></param>
+    /// <param name="cancellationToken"></param>
+    /// <returns></returns>
+    public async Task<ProvinceDistrecordResponse> PushGetCaseDistrecordSendAsync(GetCaseDistrecordSendRequest request, CancellationToken cancellationToken)
+    {
+        throw new NotImplementedException();
+    }
     #endregion
 
     #region 协同-第四批次

+ 10 - 0
src/Sharing/Notifications/XieTong/GetCaseDistrecordSendNotification.cs

@@ -0,0 +1,10 @@
+using MediatR;
+
+namespace Sharing.Notifications.XieTong
+{
+    /// <summary>
+    /// 服务工单上报12315过程信息查询接口
+    /// </summary>
+    /// <param name="Data"></param>
+    public record GetCaseDistrecordSendNotification(string Data) : INotification;
+}

+ 125 - 0
src/Sharing/Province/XieTong/Receive/GetCaseDistrecordSend.cs

@@ -0,0 +1,125 @@
+using SqlSugar;
+using System.ComponentModel;
+
+namespace Sharing.Province.XieTong.Receive
+{
+    /// <summary>
+    /// 服务工单上报12315过程信息查询
+    /// </summary>
+    [Description("服务工单上报12315过程信息查询")]
+    public class GetCaseDistrecordSend : BaseResult
+    {
+        /// <summary>
+        ///  
+        /// </summary>
+        [SugarColumn(ColumnDataType = "varchar(50)")]
+        public string OperatorGuid { get; set; }
+
+        /// <summary>
+        ///  
+        /// </summary>
+        [SugarColumn(ColumnDataType = "varchar(50)")]
+        public string CliengGuid { get; set; }
+
+        /// <summary>
+        ///  收到时间
+        /// </summary>
+        [SugarColumn(ColumnDescription = "收到时间")]
+        public DateTime? CreateTime { get; set; }
+
+        /// <summary>
+        ///  
+        /// </summary>
+        [SugarColumn(ColumnDataType = "varchar(50)")]
+        public string? BatchNo { get; set; }
+
+        /// <summary>
+        ///  节点
+        /// </summary>
+        [SugarColumn(ColumnDataType = "varchar(50)", ColumnDescription = "节点")]
+        public string? NodeType { get; set; }
+
+        /// <summary>
+        ///  操作
+        /// </summary>
+        [SugarColumn(ColumnDataType = "varchar(50)", ColumnDescription = "操作")]
+        public string? OperateStatus { get; set; }
+
+        /// <summary>
+        ///  
+        /// </summary>
+        [SugarColumn(ColumnDataType = "varchar(50)")]
+        public string? OperatorouGuid { get; set; }
+
+        /// <summary>
+        ///  步骤
+        /// </summary>
+        [SugarColumn(ColumnDataType = "varchar(200)", ColumnDescription = "步骤")]
+        public string? ActivityGuid { get; set; }
+
+        /// <summary>
+        ///  操作人名
+        /// </summary>
+        [SugarColumn(ColumnDataType = "varchar(200)", ColumnDescription = "操作人名")]
+        public string? OperateUserName { get; set; }
+
+        /// <summary>
+        ///  操作部门
+        /// </summary>
+        [SugarColumn(ColumnDataType = "varchar(200)", ColumnDescription = "操作部门")]
+        public string? OperatorouName { get; set; }
+
+        /// <summary>
+        ///  唯一ID
+        /// </summary>
+        [SugarColumn(ColumnDataType = "varchar(50)")]
+        public string? RowGuid { get; set; }
+
+        /// <summary>
+        ///  
+        /// </summary>
+        [SugarColumn(ColumnDataType = "varchar(50)")]
+        public string? Tguid { get; set; }
+
+        /// <summary>
+        ///  
+        /// </summary>
+        [SugarColumn(ColumnDataType = "varchar(50)")]
+        public string? Cguid { get; set; }
+
+        /// <summary>
+        ///  
+        /// </summary>
+        public DateTime? OperateDate { get; set; }
+
+        /// <summary>
+        ///  
+        /// </summary>
+        [SugarColumn(ColumnDataType = "varchar(50)")]
+        public string? FirstTguid { get; set; }
+
+        /// <summary>
+        ///处理时间
+        /// </summary>
+        [SugarColumn(ColumnDescription = "处理时间")]
+        public DateTime? HandleTime { get; set; }
+
+        /// <summary>
+        ///  处理意见
+        /// </summary>
+        [SugarColumn(ColumnDataType = "varchar(5000)", ColumnDescription = "处理意见")]
+        public string? HandleOpinion { get; set; }
+
+        /// <summary>
+        ///  
+        /// </summary>
+        [SugarColumn(ColumnDataType = "varchar(50)")]
+        public string? OperateType { get; set; }
+
+        /// <summary>
+        ///  处理人员
+        /// </summary>
+        [SugarColumn(ColumnDescription = "处理人员")]
+        public string? OperatorName { get; set; }
+    }
+}