TANG JIANG 2 anni fa
parent
commit
3f7f5df8db

+ 26 - 2
src/Sharing.Api/Controllers/HotlineMessageReceiveController.cs

@@ -47,6 +47,7 @@ namespace Sharing.Api.Controllers
         private readonly IGetKnowledgeInfoSendRepository _getKnowledgeInfoSendRepository;
         private readonly IGetKnowledgeInfoUpdateRepository _getKnowledgeInfoUpdateRepository;
         private readonly IGetKnowledgeInfoAbandonRepository _getKnowledgeInfoAbandonRepository;
+        private readonly ISendRealTimeStatusRepository _sendRealTimeStatusRepository;
 
         /// <summary>
         /// 
@@ -71,6 +72,10 @@ namespace Sharing.Api.Controllers
         /// <param name="supplyCaseInfoSendRepository"></param>
         /// <param name="revokeCaseInfoRepository"></param>
         /// <param name="remindCaseInfoRepository"></param>
+        /// <param name="getKnowledgeInfoSendRepository"></param>
+        /// <param name="getKnowledgeInfoUpdateRepository"></param>
+        /// <param name="getKnowledgeInfoAbandonRepository"></param>
+        /// <param name="sendRealTimeStatusRepository"></param>
         public HotlineMessageReceiveController(IMediator mediator, ILogger<HotlineMsgReceiver> logger, IMapper mapper
             , IGetCaseResultReceiveRepository getCaseResultReceiveRepository, IGetCaseProcessReceiveRepository getCaseProcessReceiveRepository
             , IGetVisitInfoReceiveRepository getVisitInfoReceiveRepository, IGetCaseBackApplyRepository getCaseBackApplyRepository
@@ -81,7 +86,8 @@ namespace Sharing.Api.Controllers
             , ISubmitCaseTotalRepository submitCaseTotalRepository, ISendCaseInfoRepository sendCaseInfoRepository
             , ISupplyCaseInfoSendRepository supplyCaseInfoSendRepository, IRevokeCaseInfoRepository revokeCaseInfoRepository
             , IRemindCaseInfoRepository remindCaseInfoRepository, IGetKnowledgeInfoSendRepository getKnowledgeInfoSendRepository
-            , IGetKnowledgeInfoUpdateRepository getKnowledgeInfoUpdateRepository, IGetKnowledgeInfoAbandonRepository getKnowledgeInfoAbandonRepository)
+            , IGetKnowledgeInfoUpdateRepository getKnowledgeInfoUpdateRepository, IGetKnowledgeInfoAbandonRepository getKnowledgeInfoAbandonRepository
+            , ISendRealTimeStatusRepository sendRealTimeStatusRepository)
         {
             _mediator = mediator;
             _logger = logger;
@@ -106,6 +112,7 @@ namespace Sharing.Api.Controllers
             _getKnowledgeInfoSendRepository = getKnowledgeInfoSendRepository;
             _getKnowledgeInfoUpdateRepository = getKnowledgeInfoUpdateRepository;
             _getKnowledgeInfoAbandonRepository = getKnowledgeInfoAbandonRepository;
+            _sendRealTimeStatusRepository = sendRealTimeStatusRepository;
         }
         #endregion
 
@@ -736,10 +743,27 @@ namespace Sharing.Api.Controllers
             data.Id = id;
             //信息上报
             await _mediator.Publish(new GetKnowledgeInfoAbandonNotification(data));
-        } 
+        }
         #endregion
 
+        /// <summary>
+        /// 实时服务上报
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [NonAction]
+        //[CapSubscribe(Hotline.Share.Mq.EventNames.HotlineSendRealTimeStatus)]
+        public async Task SendRealTimeStatus(SendRealTimeStatusInfo dto)
+        {
+            var data = _mapper.Map<SendRealTimeStatus>(dto);
+
+            //将上报信息写入本地库
+            var id = await _sendRealTimeStatusRepository.AddAsync(data);
 
+            data.Id = id;
+            //信息上报
+            await _mediator.Publish(new SendRealTimeStatusNotification(data));
+        }
         #endregion
     }
 }

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

@@ -270,5 +270,18 @@ public class DefaultPusher : IProvincePusher
         var response = await _huiJuClient.RequestAsync<GetKnowledgeInfoAbandonRequest, ProvinceResponse>(request, cancellationToken);
         return response.ReturnInfo;
     }
+
+    /// <summary>
+    /// 实时服务上报
+    /// </summary>
+    /// <param name="request"></param>
+    /// <param name="cancellationToken"></param>
+    /// <returns></returns>
+    public async Task<BaseProvinceResponse> PushSendRealTimeStatusAsync(SendRealTimeStatusRequest request, CancellationToken cancellationToken)
+    {
+        var response = await _huiJuClient.RequestAsync<SendRealTimeStatusRequest, ProvinceResponse>(request, cancellationToken);
+        return response.ReturnInfo;
+    }
+    
     #endregion
 }

+ 99 - 0
src/Sharing.Province/Dtos/XieTong/Send/SendRealTimeStatusRequest.cs

@@ -0,0 +1,99 @@
+using Microsoft.AspNetCore.Http;
+using System.Text.Json.Serialization;
+
+namespace Sharing.Province.Dtos.XieTong.Send;
+
+/// <summary>
+/// 实时服务上报
+/// </summary>
+public class SendRealTimeStatusRequest : ProvinceRequest<SendRealTimeStatusInfo>
+{
+    public override string GetRequestUrl() => "sendrealtimestatus";
+
+    public override string GetHttpMethod() => HttpMethods.Post;
+}
+
+/// <summary>
+/// 实时服务上报
+/// </summary>
+public class SendRealTimeStatusInfo
+{
+    /// <summary>
+    /// 热线标识
+    /// </summary>
+    [JsonPropertyName("HOTLINE")]
+    public string HotLine { get; set; }
+
+    /// <summary>
+    /// 行政区划代码
+    /// </summary>
+    [JsonPropertyName("AREA_CODE")]
+    public string AreaCode { get; set; }
+
+    /// <summary>
+    /// 行政区划名称
+    /// </summary>
+    [JsonPropertyName("AREA_NAME")]
+    public string AreaName { get; set; }
+
+    /// <summary>
+    /// 在线服务代表数
+    /// </summary>
+    [JsonPropertyName("CRNT_SEATNUM")]
+    public int CrntSeatNum { get; set; }
+
+    /// <summary>
+    /// 通话服务代表数
+    /// </summary>
+    [JsonPropertyName("CRNT_TELNUM")]
+    public int CrntTelNum { get; set; }
+
+    /// <summary>
+    /// 今日诉求总量
+    /// </summary>
+    [JsonPropertyName("TDY_NUM")]
+    public int TdyNum { get; set; }
+
+    /// <summary>
+    /// 今日电话诉求量
+    /// </summary>
+    [JsonPropertyName("TDY_TELNUM")]
+    public int TdyTelNum { get; set; }
+
+    /// <summary>
+    /// 今日政务服务网诉求量
+    /// </summary>
+    [JsonPropertyName("TDY_ZWNUM")]
+    public int TdyZwNum { get; set; }
+
+    /// <summary>
+    /// 今日网站诉求量
+    /// </summary>
+    [JsonPropertyName("TDY_WZNUM")]
+    public int TdyWzNum { get; set; }
+
+    /// <summary>
+    /// 今日微信诉求量
+    /// </summary>
+    [JsonPropertyName("TDY_WXNUM")]
+    public int TdyWxNum { get; set; }
+
+    /// <summary>
+    /// 今日APP诉求量
+    /// </summary>
+    [JsonPropertyName("TDY_APNUM")]
+    public int TdyApNum { get; set; }
+
+    /// <summary>
+    /// 今日其他诉求量
+    /// </summary>
+    [JsonPropertyName("TDY_OTNUM")]
+    public int TdyOtNum { get; set; }
+
+    /// <summary>
+    /// 今日电话接通率
+    /// </summary>
+    [JsonPropertyName("TDY_TELRATE")]
+    public double TdyTelRate { get; set; }
+}
+

+ 1 - 6
src/Sharing.Province/Handlers/XieTong/SendCaseInfoHandler.cs

@@ -3,11 +3,6 @@ using MediatR;
 using Sharing.Notifications.XieTong;
 using Sharing.Province.Dtos.XieTong.Send;
 using Sharing.Province.XieTong.Send;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
 
 namespace Sharing.Province.Handlers.XieTong
 {
@@ -48,7 +43,7 @@ namespace Sharing.Province.Handlers.XieTong
             var pusher = _pusherProvider.CreatePusher(_channelConfigurationManager);
 
             var dataReceive = _mapper.Map<SendCaseInfoInfo>(notification.Data);
-         
+
             var request = new SendCaseInfoRequest();
             request.SetData(dataReceive);
 

+ 65 - 0
src/Sharing.Province/Handlers/XieTong/SendRealTimeStatusHandler.cs

@@ -0,0 +1,65 @@
+using MapsterMapper;
+using MediatR;
+using Sharing.Notifications.XieTong;
+using Sharing.Province.Dtos.XieTong.Send;
+using Sharing.Province.XieTong.Send;
+
+namespace Sharing.Province.Handlers.XieTong
+{
+    /// <summary>
+    /// 实时服务上报
+    /// </summary>
+    public class SendRealTimeStatusHandler : INotificationHandler<SendRealTimeStatusNotification>
+    {
+        private readonly IChannelConfigurationManager _channelConfigurationManager;
+        private readonly PusherProvider _pusherProvider;
+        private readonly IMapper _mapper;
+        private readonly ISendRealTimeStatusRepository _sendRealTimeStatusRepository;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="channelConfigurationManager"></param>
+        /// <param name="pusherProvider"></param>
+        /// <param name="mapper"></param>
+        /// <param name="sendRealTimeStatusRepository"></param>
+        public SendRealTimeStatusHandler(IChannelConfigurationManager channelConfigurationManager, PusherProvider pusherProvider, IMapper mapper
+            , ISendRealTimeStatusRepository sendRealTimeStatusRepository)
+        {
+            _channelConfigurationManager = channelConfigurationManager;
+            _pusherProvider = pusherProvider;
+            _mapper = mapper;
+            _sendRealTimeStatusRepository = sendRealTimeStatusRepository;
+        }
+
+        /// <summary>
+        /// 服务工单上报 
+        /// </summary>
+        /// <param name="notification"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public async Task Handle(SendRealTimeStatusNotification notification, CancellationToken cancellationToken = default)
+        {
+            var pusher = _pusherProvider.CreatePusher(_channelConfigurationManager);
+
+            var dataReceive = _mapper.Map<SendRealTimeStatusInfo>(notification.Data);
+
+            var request = new SendRealTimeStatusRequest();
+            request.SetData(dataReceive);
+
+            var response = await pusher.PushSendRealTimeStatusAsync(request, cancellationToken);
+
+            //如果推送成功修改数据状态
+            if (response != null)
+            {
+                if (response.Code == "1")
+                    notification.Data.SyncState = "1";
+                else
+                    notification.Data.SyncState = "2";
+
+                notification.Data.ReturnResult = Newtonsoft.Json.JsonConvert.SerializeObject(response);
+                await _sendRealTimeStatusRepository.UpdateAsync(notification.Data);
+            }
+        }
+    }
+}

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

@@ -175,5 +175,13 @@ public interface IProvincePusher
     /// <param name="cancellationToken"></param>
     /// <returns></returns>
     Task<BaseProvinceResponse> PushGetKnowledgeInfoAbandonAsync(GetKnowledgeInfoAbandonRequest request, CancellationToken cancellationToken);
+
+    /// <summary>
+    /// 实时服务上报
+    /// </summary>
+    /// <param name="request"></param>
+    /// <param name="cancellationToken"></param>
+    /// <returns></returns>
+    Task<BaseProvinceResponse> PushSendRealTimeStatusAsync(SendRealTimeStatusRequest request, CancellationToken cancellationToken);
     #endregion
 }

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

@@ -237,5 +237,16 @@ public class SmartPusher : IProvincePusher
     {
         throw new NotImplementedException();
     }
+
+    /// <summary>
+    /// 实时服务上报
+    /// </summary>
+    /// <param name="request"></param>
+    /// <param name="cancellationToken"></param>
+    /// <returns></returns>
+    public async Task<BaseProvinceResponse> PushSendRealTimeStatusAsync(SendRealTimeStatusRequest request, CancellationToken cancellationToken)
+    {
+        throw new NotImplementedException();
+    }
     #endregion
 }

+ 14 - 0
src/Sharing.Repository/Province/XieTong/Send/SendRealTimeStatusRepository.cs

@@ -0,0 +1,14 @@
+using Sharing.Province.XieTong.Send;
+using SqlSugar;
+using XF.Domain.Dependency;
+
+namespace Sharing.Repository.Province.XieTong.Send
+{
+    public class SendRealTimeStatusRepository : BaseRepository<SendRealTimeStatus>, ISendRealTimeStatusRepository, IScopeDependency
+    {
+        public SendRealTimeStatusRepository(ISugarUnitOfWork<SharingDbContext> uow) : base(uow)
+        {
+
+        }
+    }
+}

+ 11 - 0
src/Sharing/Notifications/XieTong/SendRealTimeStatusNotification.cs

@@ -0,0 +1,11 @@
+using MediatR;
+using Sharing.Province.XieTong.Send;
+
+namespace Sharing.Notifications.XieTong
+{
+    /// <summary>
+    /// 实时服务上报  
+    /// </summary>
+    /// <param name="Data"></param>
+    public record SendRealTimeStatusNotification(SendRealTimeStatus Data) : INotification;
+}

+ 17 - 11
src/Sharing/Province/HuiJu/BaseSendResult.cs

@@ -2,18 +2,12 @@
 using XF.Domain.Repository;
 
 namespace Sharing.Province.HuiJu
-{
+{  
     /// <summary>
-    /// 基础数据
-    /// </summary>
-    public class BaseSendResult : FullStateEntity
+   /// 基础数据
+   /// </summary>
+    public class SendBaseResult : FullStateEntity
     {
-        /// <summary>
-        /// 服务工单编号  
-        /// </summary>
-        [SugarColumn(ColumnDescription = "服务工单编号", ColumnDataType = "varchar(50)")]
-        public string CaseSerial { get; set; }
-
         /// <summary>
         /// 行政区划代码
         /// </summary>
@@ -33,10 +27,22 @@ namespace Sharing.Province.HuiJu
         public string SyncState { get; set; } = "0";
     }
 
+  /// <summary>
+  /// 
+  /// </summary>
+    public class SendOrderResult : SendBaseResult
+    {
+        /// <summary>
+        /// 服务工单编号  
+        /// </summary>
+        [SugarColumn(ColumnDescription = "服务工单编号", ColumnDataType = "varchar(50)")]
+        public string CaseSerial { get; set; }
+    }
+
     /// <summary>
     /// 全量数据
     /// </summary>
-    public class BaseSendAllResult : BaseSendResult
+    public class BaseSendAllResult : SendOrderResult
     {
         /// <summary>
         /// 材料标识

+ 1 - 1
src/Sharing/Province/HuiJu/Send/SubmitCaseRecord.cs

@@ -7,7 +7,7 @@ namespace Sharing.Province.HuiJu.Send
     /// 电话记录
     /// </summary>
     [Description("电话记录")]
-    public class SubmitCaseRecord : BaseSendResult
+    public class SubmitCaseRecord : SendOrderResult
     {
         /// <summary>
         /// 电话号码

+ 3 - 21
src/Sharing/Province/XieTong/Knowledge/GetKnowledgeInfoAbandon.cs

@@ -1,6 +1,6 @@
-using SqlSugar;
+using Sharing.Province.HuiJu;
+using SqlSugar;
 using System.ComponentModel;
-using XF.Domain.Repository;
 
 namespace Sharing.Province.XieTong.Knowledge
 {
@@ -8,7 +8,7 @@ namespace Sharing.Province.XieTong.Knowledge
     /// 知识库下架    
     /// </summary>
     [Description("知识库下架")]
-    public class GetKnowledgeInfoAbandon : FullStateEntity
+    public class GetKnowledgeInfoAbandon : SendBaseResult
     {
         /// <summary>
         /// 知识类别code
@@ -27,23 +27,5 @@ namespace Sharing.Province.XieTong.Knowledge
         /// </summary>
         [SugarColumn(ColumnDescription = "上报知识唯一标识", ColumnDataType = "varchar(50)")]
         public string UID { get; set; }
-
-        /// <summary>
-        /// 行政区划代码
-        /// </summary>
-        [SugarColumn(ColumnDescription = "行政区划代码", ColumnDataType = "varchar(24)")]
-        public string AreaCode { get; set; }
-
-        /// <summary>
-        /// 接口返回结果
-        /// </summary>
-        [SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
-        public string ReturnResult { get; set; }
-
-        /// <summary>
-        /// 同步状态 0:待同步;	  1:同步成功;	 2:同步失败;
-        /// </summary>
-        [SugarColumn(ColumnDescription = "同步状态", ColumnDataType = "varchar(1)", IsNullable = true)]
-        public string SyncState { get; set; } = "0";
     }
 }

+ 3 - 20
src/Sharing/Province/XieTong/Knowledge/GetKnowledgeInfoSend.cs

@@ -1,6 +1,6 @@
-using SqlSugar;
+using Sharing.Province.HuiJu;
+using SqlSugar;
 using System.ComponentModel;
-using XF.Domain.Repository;
 
 namespace Sharing.Province.XieTong.Knowledge
 {
@@ -8,7 +8,7 @@ namespace Sharing.Province.XieTong.Knowledge
     /// 知识库上报    
     /// </summary>
     [Description("知识库上报")]
-    public class GetKnowledgeInfoSend : FullStateEntity
+    public class GetKnowledgeInfoSend : SendBaseResult
     {
         /// <summary>
         /// 知识类别code
@@ -70,28 +70,11 @@ namespace Sharing.Province.XieTong.Knowledge
         [SugarColumn(ColumnDescription = "上报知识唯一标识", ColumnDataType = "varchar(50)")]
         public string UID { get; set; }
 
-        /// <summary>
-        /// 行政区划代码
-        /// </summary>
-        [SugarColumn(ColumnDescription = "行政区划代码", ColumnDataType = "varchar(24)")]
-        public string AreaCode { get; set; }
-
         /// <summary>
         /// 材料标识
         /// </summary>
         [SugarColumn(ColumnDescription = "材料标识", ColumnDataType = "varchar(50)", IsNullable = true)]
         public string CliengGuid { get; set; }
 
-        /// <summary>
-        /// 接口返回结果
-        /// </summary>
-        [SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
-        public string ReturnResult { get; set; }
-
-        /// <summary>
-        /// 同步状态 0:待同步;	  1:同步成功;	 2:同步失败;
-        /// </summary>
-        [SugarColumn(ColumnDescription = "同步状态", ColumnDataType = "varchar(1)", IsNullable = true)]
-        public string SyncState { get; set; } = "0";
     }
 }

+ 3 - 21
src/Sharing/Province/XieTong/Knowledge/GetKnowledgeInfoUpdate.cs

@@ -1,6 +1,6 @@
-using SqlSugar;
+using Sharing.Province.HuiJu;
+using SqlSugar;
 using System.ComponentModel;
-using XF.Domain.Repository;
 
 namespace Sharing.Province.XieTong.Knowledge
 {
@@ -8,7 +8,7 @@ namespace Sharing.Province.XieTong.Knowledge
     /// 知识库变更    
     /// </summary>
     [Description("知识库变更")]
-    public class GetKnowledgeInfoUpdate : FullStateEntity
+    public class GetKnowledgeInfoUpdate : SendBaseResult
     {
         /// <summary>
         /// 知识类别code
@@ -70,28 +70,10 @@ namespace Sharing.Province.XieTong.Knowledge
         [SugarColumn(ColumnDescription = "上报知识唯一标识", ColumnDataType = "varchar(50)")]
         public string UID { get; set; }
 
-        /// <summary>
-        /// 行政区划代码
-        /// </summary>
-        [SugarColumn(ColumnDescription = "行政区划代码", ColumnDataType = "varchar(24)")]
-        public string AreaCode { get; set; }
-
         /// <summary>
         /// 材料标识
         /// </summary>
         [SugarColumn(ColumnDescription = "材料标识", ColumnDataType = "varchar(50)", IsNullable = true)]
         public string CliengGuid { get; set; }
-
-        /// <summary>
-        /// 接口返回结果
-        /// </summary>
-        [SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
-        public string ReturnResult { get; set; }
-
-        /// <summary>
-        /// 同步状态 0:待同步;	  1:同步成功;	 2:同步失败;
-        /// </summary>
-        [SugarColumn(ColumnDescription = "同步状态", ColumnDataType = "varchar(1)", IsNullable = true)]
-        public string SyncState { get; set; } = "0";
     }
 }

+ 8 - 0
src/Sharing/Province/XieTong/Send/ISendRealTimeStatusRepository.cs

@@ -0,0 +1,8 @@
+using XF.Domain.Repository;
+
+namespace Sharing.Province.XieTong.Send
+{
+    public interface ISendRealTimeStatusRepository : IRepository<SendRealTimeStatus>
+    {
+    }
+}

+ 103 - 0
src/Sharing/Province/XieTong/Send/SendRealTimeStatus.cs

@@ -0,0 +1,103 @@
+using SqlSugar;
+using System.ComponentModel;
+using XF.Domain.Repository;
+
+namespace Sharing.Province.XieTong.Send
+{
+    /// <summary>
+    /// 实时服务上报    
+    /// </summary>
+    [Description("实时服务上报")]
+    public class SendRealTimeStatus : FullStateEntity
+    {
+        /// <summary>
+        /// 热线标识
+        /// </summary>
+        [SugarColumn(ColumnDescription = "热线标识", ColumnDataType = "varchar(24)")]
+        public string HOTLINE { get; set; }
+
+        /// <summary>
+        /// 行政区划代码
+        /// </summary>
+        [SugarColumn(ColumnDescription = "行政区划代码", ColumnDataType = "varchar(24)")]
+        public string AREA_CODE { get; set; }
+
+        /// <summary>
+        /// 行政区划名称
+        /// </summary>
+        [SugarColumn(ColumnDescription = "行政区划名称", ColumnDataType = "varchar(24)")]
+        public string AREA_NAME { get; set; }
+
+        /// <summary>
+        /// 在线服务代表数
+        /// </summary>
+        [SugarColumn(ColumnDescription = "在线服务代表数")]
+        public int CRNT_SEATNUM { get; set; }
+
+        /// <summary>
+        /// 通话服务代表数
+        /// </summary>
+        [SugarColumn(ColumnDescription = "通话服务代表数")]
+        public int CRNT_TELNUM { get; set; }
+
+        /// <summary>
+        /// 今日诉求总量
+        /// </summary>
+        [SugarColumn(ColumnDescription = "今日诉求总量")]
+        public int TDY_NUM { get; set; }
+
+        /// <summary>
+        /// 今日电话诉求量
+        /// </summary>
+        [SugarColumn(ColumnDescription = "今日电话诉求量")]
+        public int TDY_TELNUM { get; set; }
+
+        /// <summary>
+        /// 今日政务服务网诉求量
+        /// </summary>
+        [SugarColumn(ColumnDescription = "今日政务服务网诉求量")]
+        public int TDY_ZWNUM { get; set; }
+
+        /// <summary>
+        /// 今日网站诉求量
+        /// </summary>
+        [SugarColumn(ColumnDescription = "今日网站诉求量")]
+        public int TDY_WZNUM { get; set; }
+
+        /// <summary>
+        /// 今日微信诉求量
+        /// </summary>
+        [SugarColumn(ColumnDescription = "今日微信诉求量")]
+        public int TDY_WXNUM { get; set; }
+
+        /// <summary>
+        /// 今日APP诉求量
+        /// </summary>
+        [SugarColumn(ColumnDescription = "今日APP诉求量")]
+        public int TDY_APNUM { get; set; }
+
+        /// <summary>
+        /// 今日其他诉求量
+        /// </summary>
+        [SugarColumn(ColumnDescription = "今日其他诉求量")]
+        public int TDY_OTNUM { get; set; }
+
+        /// <summary>
+        /// 今日电话接通率
+        /// </summary>
+        [SugarColumn(ColumnDescription = "今日电话接通率")]
+        public double TDY_TELRATE { get; set; }
+
+        /// <summary>
+        /// 接口返回结果
+        /// </summary>
+        [SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
+        public string ReturnResult { get; set; }
+
+        /// <summary>
+        /// 同步状态 0:待同步;	  1:同步成功;	 2:同步失败;
+        /// </summary>
+        [SugarColumn(ColumnDescription = "同步状态", ColumnDataType = "varchar(1)", IsNullable = true)]
+        public string SyncState { get; set; } = "0";
+    }
+}