Kaynağa Gözat

Merge branch 'master' of http://110.188.24.182:10023/Fengwo/hotline

田爽 1 yıl önce
ebeveyn
işleme
539a9b1643

+ 11 - 12
src/Hotline.Ai.Jths/AiVisitService.cs

@@ -44,8 +44,8 @@ namespace Hotline.Ai.Jths
                 BatchStatus = 1,
                 SceneUid = _sceneuid,
                 Priority = 1,
-                StartDate = aiOrderVisit.BeginTime,
-                EndDate = aiOrderVisit.EndTime,
+                StartDate = aiOrderVisit.BeginTime.ToString("yyyy/MM/dd HH:mm:ss"),
+                EndDate = aiOrderVisit.EndTime.ToString("yyyy/MM/dd HH:mm:ss"),
                 FestivalBan = aiOrderVisit.FestivalBan,
                 RuleType = aiOrderVisit.RuleType,
                 RuleUid = _ruleuid,
@@ -61,25 +61,24 @@ namespace Hotline.Ai.Jths
                 {
                     if (!string.IsNullOrEmpty(item.Order.FromName))
                     {
-                        taskData.VariableList.Add(new Variable() { Code = "姓名", Value = item.Order.FromName });
+                        taskData.VariableList.Add(new Variable() { Code = "OC_SCENE_VAR_FIELD11", Value = item.Order.FromName });
                     }
-                    taskData.VariableList.Add(new Variable() { Code = "gender", Value = item.Order.FromGender == EGender.Female ? "女士" : "先生" });
+                    taskData.VariableList.Add(new Variable() { Code = "OC_SCENE_VAR_FIELD14", Value = item.Order.FromGender == EGender.Female ? "女士" : "先生" });
                 }
                
-                taskData.VariableList.Add(new Variable() { Code = "反馈时间", Value = item.Order.CreationTime.ToString("yyyy年MM月dd日hh点mm分") });
-                taskData.VariableList.Add(new Variable() { Code = "反馈问题", Value = item.Order.Title });
+                taskData.VariableList.Add(new Variable() { Code = "OC_SCENE_VAR_FIELD17", Value = item.Order.CreationTime.ToString("yyyy年MM月dd日hh点mm分") });
+                taskData.VariableList.Add(new Variable() { Code = "OC_SCENE_VAR_FIELD18", Value = item.Order.Title });
                 taskDataList.Add(taskData);
             }
             requestData.TaskDataList = taskDataList;
             var response = await ExecuteAsync<AiVisitServiceRequest, AiVisitServiceResponse>(_baseUrl + "/edas/batchTask",Method.Post, requestData,cancellationToken);
-
-            if (response.TaskInfoList!=null && !string.IsNullOrEmpty(response.BatchUid))
+            if (response.Result.TaskInfoList!=null && !string.IsNullOrEmpty(response.Result.BatchUid))
             {
                 //拼对象
-                aiOrderVisit.BatchUid = response.BatchUid;
+                aiOrderVisit.BatchUid = response.Result.BatchUid;
                 for (int i = 0; i < aiOrderVisit.AiOrderVisitDetails.Count; i++)
                 {
-                    var taskInfo = response.TaskInfoList.FirstOrDefault(x => x.CalledNumber == aiOrderVisit.AiOrderVisitDetails[i].OuterNo);
+                    var taskInfo = response.Result.TaskInfoList.FirstOrDefault(x => x.CalledNumber == aiOrderVisit.AiOrderVisitDetails[i].OuterNo);
                     if (taskInfo != null)
                     {
                         aiOrderVisit.AiOrderVisitDetails[i].AiOrderVisitState = Share.Enums.Ai.EAiOrderVisitState.InProgress;
@@ -95,7 +94,7 @@ namespace Hotline.Ai.Jths
         }
 
 
-        public async Task<TResponse> ExecuteAsync<TRequest,TResponse>(string path, Method httpMethod, TRequest request,
+        public async Task<ApiResponse<TResponse>> ExecuteAsync<TRequest,TResponse>(string path, Method httpMethod, TRequest request,
             CancellationToken cancellationToken)
             where TRequest : class
         {
@@ -114,7 +113,7 @@ namespace Hotline.Ai.Jths
             }
             try
             {
-                var response = await _client.ExecuteAsync<TResponse>(req, cancellationToken);
+                var response = await _client.ExecuteAsync<ApiResponse<TResponse>>(req, cancellationToken);
                 return response.Data;
             }
             catch (Exception e)

+ 2 - 2
src/Hotline.Ai.Jths/OrderVisits/AiVisitServiceRequest.cs

@@ -26,11 +26,11 @@ namespace Hotline.Ai.Jths.OrderVisits
         /// <summary>
         /// 外呼开始时间
         /// </summary>
-        public DateTime StartDate { get; set; }
+        public string StartDate { get; set; }
         /// <summary>
         /// 外呼结束时间
         /// </summary>
-        public DateTime EndDate { get; set; }
+        public string EndDate { get; set; }
 
         /// <summary>
         /// 节日禁呼 0:否 1:是

+ 0 - 3
src/Hotline.Ai.Jths/OrderVisits/AiVisitServiceResponse.cs

@@ -3,9 +3,6 @@ namespace Hotline.Ai.Jths.OrderVisits
 {
     public class AiVisitServiceResponse
     {
-
-
-
         public string BatchUid { get; set; }
 
         public List<TaskInfoList> TaskInfoList { get; set; }

+ 3 - 1
src/Hotline.Api/Controllers/AiController.cs

@@ -266,7 +266,9 @@ namespace Hotline.Api.Controllers
                 .Includes(x => x.AiOrderVisitDetails, s => s.OrderVisit, q => q.OrderVisitDetails)
                 .FirstAsync(x => x.Id == id);
             
-            await _aiVisitService.CreateAiOrderVisitTask(pushModel, HttpContext.RequestAborted);
+            var newModel = await _aiVisitService.CreateAiOrderVisitTask(pushModel, HttpContext.RequestAborted);
+            await _aiOrderVisitRepository.UpdateAsync(newModel, HttpContext.RequestAborted);
+            await _aiOrderVisitDetailRepository.UpdateRangeAsync(newModel.AiOrderVisitDetails, HttpContext.RequestAborted);
         }
 
         #endregion

+ 31 - 4
src/Hotline.Api/Controllers/DataSharing/ProvinceController.cs

@@ -4,6 +4,7 @@ using Hotline.DataSharing.Province;
 using Hotline.DataSharing.Province.Notifications;
 using Hotline.DataSharing.Province.XieTong.Receive;
 using Hotline.DataSharing.Province.XieTong.Send;
+using Hotline.Orders.Notifications;
 using Hotline.Share.Dtos.DataSharing;
 using Hotline.Share.Dtos.DataSharing.Province;
 using Hotline.Share.Dtos.DataSharing.Province.XieTong.Receive;
@@ -14,7 +15,6 @@ using MapsterMapper;
 using MediatR;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
-using Org.BouncyCastle.Ocsp;
 using XF.Domain.Filters;
 using XF.Domain.Repository;
 
@@ -469,7 +469,7 @@ namespace Hotline.Api.Controllers.DataSharing
         }
 
         /// <summary>
-        /// 交办工单满意度接收接口
+        /// 交办工单满意度接收接口---已完成-----1
         /// </summary>
         /// <param name="receiveSendCaseEvlResult">交办工单满意度对象</param>
         /// <returns></returns>
@@ -493,8 +493,17 @@ namespace Hotline.Api.Controllers.DataSharing
 
             if (!string.IsNullOrEmpty(id))
             {
+                ProvinceOrderVisitDto orderVisitDto = new()
+                {
+                    ProvinceNo = dto.CaseSerial,
+                    VisitTime = dto.ReplyTime,
+                    VisitContent = dto.ReplyContent,
+                    OrgProcessingResults = dto.ResultEvl,
+                    VisitType = EVisitType.ArtificialVisit
+                };
+
                 //向业务系统推送消息
-                //await _capPublisher.PublishAsync(Sharing.Share.Mq.EventNames.SharingOrderEvlResult, _mapper.Map<EvlResultDto>(dto), cancellationToken: HttpContext.RequestAborted);
+                await _mediator.Send(new AddVisitNotify { OrderVisited = orderVisitDto }, HttpContext.RequestAborted);
                 return OpenResponse.Ok(Reponse.Success("您已成功提交数据!"));
             }
             else
@@ -571,8 +580,26 @@ namespace Hotline.Api.Controllers.DataSharing
 
             if (!string.IsNullOrEmpty(id))
             {
+                ProvinceOrderVisitDto orderVisitDto = new()
+                {
+                    ProvinceNo = dto.CaseSerial,
+                    VisitTime = dto.VisitTime,
+                    VisitContent = dto.VisitRemark,
+                    OrgProcessingResults = dto.SubjectResultSatify
+                };
+                orderVisitDto.VisitType = dto.VisitType switch
+                {
+                    "DH" => (EVisitType?)EVisitType.ArtificialVisit,
+                    "DX" => (EVisitType?)EVisitType.SmsVisit,
+                    "WZ" => (EVisitType?)EVisitType.WebVisit,
+                    "WX" => (EVisitType?)EVisitType.WeChatVisit,
+                    "AP" => (EVisitType?)EVisitType.AppVisit,
+                    _ => (EVisitType?)EVisitType.OtherVisit,
+                };
+
                 //向业务系统推送消息
-                // await _capPublisher.PublishAsync(Sharing.Share.Mq.EventNames.SharingOrderVisitInfo, _mapper.Map<VisitInfoDto>(dto), cancellationToken: HttpContext.RequestAborted);
+                await _mediator.Send(new AddVisitNotify { OrderVisited = orderVisitDto }, HttpContext.RequestAborted);
+
                 return OpenResponse.Ok(Reponse.Success("您已成功提交数据!"));
             }
             else

+ 45 - 16
src/Hotline.Api/Controllers/OrderController.cs

@@ -21,7 +21,6 @@ using Hotline.Share.Dtos.Settings;
 using Hotline.Share.Enums.Order;
 using Hotline.Share.Enums.Quality;
 using Hotline.Share.Enums.Settings;
-using Hotline.Share.Mq;
 using Hotline.Share.Requests;
 using MapsterMapper;
 using MediatR;
@@ -40,6 +39,9 @@ using Hotline.Share.Dtos.File;
 using Hotline.Application.Quality;
 using Hotline.Enterprise;
 using Hotline.Share.Dtos.Enterprise;
+using Hotline.Push.FWMessage;
+using Hotline.Share.Dtos.Push;
+using Hotline.Share.Enums.Push;
 
 namespace Hotline.Api.Controllers;
 
@@ -89,11 +91,12 @@ public class OrderController : BaseController
     private readonly IRepository<OrderSpecial> _orderSpecialRepository;
     private readonly IRepository<WorkflowTrace> _workflowTraceRepository;
     private readonly IRepository<TrCallRecord> _trCallRecordRepository;
-    private readonly ILogger<OrderController> _logger;
     private readonly IOrderApplication _orderApplication;
     private readonly IEnterpriseService _enterpriseService;
+    private readonly IPushDomainService _pushDomainService;
+    private readonly ILogger<OrderController> _logger;
 
-	public OrderController(
+    public OrderController(
         IOrderDomainService orderDomainService,
         IOrderRepository orderRepository,
         IWorkflowApplication workflowApplication,
@@ -135,9 +138,11 @@ public class OrderController : BaseController
         IRepository<OrderSpecial> orderSpecialRepository,
         IRepository<WorkflowTrace> workflowTraceRepository,
         IRepository<TrCallRecord> trCallRecordRepository,
-        ILogger<OrderController> logger,
         IOrderApplication orderApplication,
-        IEnterpriseService enterpriseService)
+        IEnterpriseService enterpriseService,
+        IPushDomainService pushDomainService,
+        ILogger<OrderController> logger
+        )
     {
         _orderDomainService = orderDomainService;
         _orderRepository = orderRepository;
@@ -183,8 +188,8 @@ public class OrderController : BaseController
         _logger = logger;
         _orderApplication = orderApplication;
         _enterpriseService = enterpriseService;
-
-	}
+        _pushDomainService = pushDomainService;
+    }
 
     #region 工单发布
 
@@ -1796,7 +1801,7 @@ public class OrderController : BaseController
             .Includes(d => d.OrderDelays)
             .Includes(d => d.OrderScreens)
             .Includes(d => d.OrderVisits, x => x.OrderVisitDetails)
-            .Includes(d=> d.OrderVisits,x=>x.Employee)
+            .Includes(d => d.OrderVisits, x => x.Employee)
             .FirstAsync(d => d.Id == id);
         if (order == null)
             return new();
@@ -1864,6 +1869,30 @@ public class OrderController : BaseController
 
         //内容分词
         await _orderApplication.OrderParticiple(dto.Content, order.Id, HttpContext.RequestAborted);
+
+        //sms
+        try
+        {
+            if (order.SmsSended)
+            {
+                await _pushDomainService.PushAsync(new MessageDto
+                {
+                    PushBusiness = EPushBusiness.OrderAccept,
+                    ExternalId = order.Id,
+                    OrderId = order.Id,
+                    PushPlatform = EPushPlatform.Sms,
+                    Content =
+                        $"温馨提示:您的来电已受理(流水号:{order.No};提取码:{order.Password},可通过网站(http://hotline.12345lm.cn)进行查询,谢谢。【宜宾12345热线平台】)",
+                    Remark = order.Title,
+                    Name = order.FromName,
+                    TelNumber = order.Contact
+                }, HttpContext.RequestAborted);
+            }
+        }
+        catch (Exception e)
+        {
+            _logger.LogError("新增工单发送短信失败,Error:{err}", e.Message);
+        }
         return order.Id;
     }
 
@@ -3105,18 +3134,18 @@ public class OrderController : BaseController
         await _orderRepository.UpdateAsync(order, HttpContext.RequestAborted);
     }
 
-	#endregion
+    #endregion
 
-	#region 获取企业信息
+    #region 获取企业信息
     /// <summary>
     /// 获取企业信息
     /// </summary>
     /// <param name="dto"></param>
     /// <returns></returns>
-	[HttpGet("enterprise/List")]
-	public async Task<EnterpriseListData> GetEnterpriseList([FromQuery] PagedKeywordRequest dto)
-	{
-		return await _enterpriseService.GetEnterpriseList(dto.Keyword!, dto.PageIndex,dto.PageSize, HttpContext.RequestAborted);
-	}
-	#endregion
+    [HttpGet("enterprise/List")]
+    public async Task<EnterpriseListData> GetEnterpriseList([FromQuery] PagedKeywordRequest dto)
+    {
+        return await _enterpriseService.GetEnterpriseList(dto.Keyword!, dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
+    }
+    #endregion
 }

+ 2 - 2
src/Hotline.Api/config/appsettings.Development.json

@@ -202,9 +202,9 @@
   //智能回访
   "AiVisit": {
     "Url": "http://118.121.201.140:19061",
-    "Appkey": "fwkj",
+    "Appkey": "MTAwMDAx",
     "ServiceVersion": "V1.0.0", //接口版本号
-    "SceneUid": "MTAwMDAxX0T7BfPTIqh8biWrOf58", //场景ID
+    "SceneUid": "MTAwMDAxM4yRrAE5SsihkQkKuyMwM", //场景ID
     "RuleUid": "MTAwMDAxSGdDJryoQUgoDeiKlsTEyc" //现有规则ID
   },
   //智能质检

+ 2 - 2
src/Hotline.Api/config/appsettings.json

@@ -105,9 +105,9 @@
   //智能回访
   "AiVisit": {
     "Url": "http://118.121.201.140:19061",
-    "Appkey": "fwkj",
+    "Appkey": "MTAwMDAx",
     "ServiceVersion": "V1.0.0", //接口版本号
-    "SceneUid": "MTAwMDAxX0T7BfPTIqh8biWrOf58", //场景ID
+    "SceneUid": "MTAwMDAxM4yRrAE5SsihkQkKuyMwM", //场景ID
     "RuleUid": "MTAwMDAxSGdDJryoQUgoDeiKlsTEyc" //现有规则ID
   }
 }

+ 1 - 1
src/Hotline.Application/Handlers/Order/AddVisitNotifyHandler.cs

@@ -32,7 +32,7 @@ namespace Hotline.Application.Handlers.Order
             var orderVisit = await _orderVisitRepository.Queryable()
                 .Includes(x=>x.Order)
                 .Includes(x=>x.OrderVisitDetails)
-                .Where(x => x.No == notification.OrderVisited.OrderNo && 
+                .Where(x => x.Order.ProvinceNo == notification.OrderVisited.ProvinceNo && 
              x.VisitState != Share.Enums.Order.EVisitState.None).FirstAsync(cancellationToken);
 
             if (orderVisit != null)

+ 15 - 1
src/Hotline.Application/Mappers/DataSharing/DsMapperConfigs.cs

@@ -185,7 +185,21 @@ namespace Hotline.Application.Mappers.DataSharing
            .Map(d => d.SignTime, x => x.ActualHandleStepAcceptTime)
            .Map(d => d.FdBackTime, x => x.ActualHandleTime)
            .Map(d => d.HandleTimeLong, x => x.HandleDurationWorkday)
-            ; 
+            ;
+
+            ///服务工单交办处理结果
+            config.ForType<PublishPublishOrderDto, DsZmhdCaseInfoPublic>()
+           .Map(d => d.CaseSerial, x => x.Order.ProvinceNo)
+           .Map(d => d.AnswerTime, x => x.Order.ActualHandleTime)
+           .Map(d => d.AnswerOu, x => x.Order.ActualHandleOrgName)
+           .Map(d => d.AnswerContent, x => x.Order.ActualOpinion)
+           .Map(d => d.AuditFirstName, x => x.CreatorName)
+           .Map(d => d.AuditFirstTime, x => x.CreationTime)
+           .Map(d => d.AuditSecondName, x => x.CreatorName)
+           .Map(d => d.PublishDate, x => x.CreationTime)
+           .Map(d => d.PublicOpinion, x => x.ArrangeOpinion)
+           .Map(d => d.AreaCode, x => x.Order.AreaCode)
+            ;
 
             //通话记录
             config.ForType<CallConnectOrderDto, DsSubmitCaseRecord>()

+ 1 - 1
src/Hotline.Share/Dtos/Order/OrderVisitDto.cs

@@ -444,7 +444,7 @@ namespace Hotline.Share.Dtos.Order
         /// <summary>
         /// 工单编号
         /// </summary>
-        public string OrderNo { get; set; }
+        public string ProvinceNo { get; set; }
         /// <summary>
         /// 回访时间
         /// </summary>

+ 62 - 35
src/Hotline/DataSharing/Province/Services/ProvinceService.cs

@@ -16,6 +16,7 @@ using Hotline.Share.Dtos.File;
 using Hotline.Share.Dtos.Knowledge;
 using Hotline.Share.Dtos.Order;
 using Hotline.Share.Enums.DataSharing;
+using Hotline.Share.Enums.FlowEngine;
 using Hotline.Share.Enums.Order;
 using MapsterMapper;
 using MediatR;
@@ -397,7 +398,7 @@ namespace Hotline.DataSharing.Province.Services
         }
 
         /// <summary>
-        /// 政民互动提交公开  
+        /// 政民互动提交公开---已在接收大补数据中实现  
         /// </summary>
         /// <param name="dto"></param>
         /// <returns></returns>
@@ -970,51 +971,77 @@ namespace Hotline.DataSharing.Province.Services
         /// <param name="dto"></param>
         /// <param name="cancellationToken"></param>
         /// <returns></returns>
-        public async Task PublishOrder(OrderDto dto, CancellationToken cancellationToken)
+        public async Task PublishOrder(PublishPublishOrderDto dto, CancellationToken cancellationToken)
         {
-            #region 服务工单交办处理结果
-            //判断是否是热线中心
-            if (!string.IsNullOrEmpty(dto.ActualHandleOrgCode))
+            if (dto.Order.IsProvince && dto.Order.Source == ESource.ProvinceStraight)
             {
-                if (dto.ActualHandleOrgCode.Substring(0, 3) == "001")
+                #region 服务工单交办处理结果
+                //判断是否是热线中心
+                if (!string.IsNullOrEmpty(dto.Order.ActualHandleOrgCode) && dto.Order.ActualHandleOrgCode.Substring(0, 3) == "001")
+                    dto.Order.ActualHandleOrgName = "热线中心";
+
+                var data = _mapper.Map<DsGetCaseResultReceive>(dto.Order);
+                data.ConcactType = "40";
+                data.FinishType = "1";
+                data.HandleTimeLong = dto.Order.AllDuration;
+                switch (dto.Order.RealCommunicationMode)
                 {
-                    dto.ActualHandleOrgName = "热线中心";
+                    case ERealCommunicationMode.Phone:
+                        data.ConcactType = "10";
+                        break;
+                    case ERealCommunicationMode.Locale:
+                        data.ConcactType = "20";
+                        break;
+                    default:
+                        data.ConcactType = "40";
+                        break;
                 }
-            }
-
-            var data = _mapper.Map<DsGetCaseResultReceive>(dto);
-            data.ConcactType = "40";
-            data.FinishType = "1";
-            data.HandleTimeLong = dto.AllDuration;
-            data.CliengGuid = Guid.NewGuid().ToString();
-            //将上报信息写入本地库
-            data.Id = await _getCaseResultReceiveRepository.AddAsync(data, cancellationToken);
-
-            //将待推送数据写入待推送表
-            DsWaitingPushData pushData = new()
-            {
-                ServiceInterface = "GetCaseResultReceive",
-                Data = System.Text.Json.JsonSerializer.Serialize(data),
-                Priority = 0,
-                PushUrl = "get_case_result_receive",
-                Method = HttpMethods.Post,
-                SyncID = data.Id
-            };
-            await _waitingPushDataRepository.AddAsync(pushData, cancellationToken);
-            //处理附件
-            await FileData(new List<FileJson>(), data.CaseSerial, data.CliengGuid, dto.AreaCode, cancellationToken);
-            #endregion
+                data.CliengGuid = Guid.NewGuid().ToString();
 
-            //这里业务系统处理
-            if (dto.SourceChannelCode == "ZGZFW")
-            {
+                //中国政府网的数据处理
+                if (dto.Order.SourceChannelCode == "ZGZFW")
+                {
+                    data.Notes = "无";
+                    data.MsgOpenByArea = dto.ProPublishState == true ? "1" : "0";
+                    data.AreaNotPublicReason = dto.NoPubReason;
+                    data.FeedBackAnswerContent = dto.ArrangeOpinion;
+                    data.FeedBackTel = dto.FeedBackPhone;
+                    data.EventType = "";
+                    data.Eventname = "";
+                    data.ContactFlag = "1";
+                    data.AssessFlag = "1";
+                    data.AssessOpinion = "1";
+                    data.AssessContent = "";
+                }
+                
+                //将上报信息写入本地库
+                data.Id = await _getCaseResultReceiveRepository.AddAsync(data, cancellationToken);
 
+                //将待推送数据写入待推送表
+                DsWaitingPushData pushData = new()
+                {
+                    ServiceInterface = "GetCaseResultReceive",
+                    Data = System.Text.Json.JsonSerializer.Serialize(data),
+                    Priority = 0,
+                    PushUrl = "get_case_result_receive",
+                    Method = HttpMethods.Post,
+                    SyncID = data.Id
+                };
+                await _waitingPushDataRepository.AddAsync(pushData, cancellationToken);
+                //处理附件
+                await FileData(new List<FileJson>(), data.CaseSerial, data.CliengGuid, dto.Order.AreaCode, cancellationToken);
+                #endregion
             }
 
             //政民互动提交公开
-            if (dto.SourceChannelCode == "ZMHD")
+            if (dto.Order.SourceChannelCode == "ZMHD")
             {
+                var data = _mapper.Map<DsZmhdCaseInfoPublic>(dto);
+                //将上报信息写入本地库
+                data.Id = await _zMHDCaseInfoPublicRepository.AddAsync(data);
 
+                //将待推送数据写入待推送表
+                await InitPushData("ZmhdCaseInfoPublic", System.Text.Json.JsonSerializer.Serialize(data), "zmhd_case_info_public", data.Id, 0, cancellationToken);
             }
         }
 

+ 25 - 22
src/Hotline/DataSharing/Province/Services/PusherProviderService.cs

@@ -1356,31 +1356,34 @@ namespace Hotline.DataSharing.Province.Services
                         fileContentBytes = memoryStream.ToArray();
                     }
                 }
-                //获取附件上传Token
-                string strToken = await _xieTongClient.GetTokenAsync(cancellationToken);
-
-                //组装请求参数
-                var model = new GetCaseMaterialInfoRequest
-                {
-                    paras = dto,
-                    token = new ClientInfo(configProvince.ClientId, configProvince.ClientSecret)
-                };
-
-                Dictionary<string, object> dicParam = new()
+                if (fileContentBytes != null)
                 {
-                    { "params",  System.Text.Json.JsonSerializer.Serialize(model) } // 第一个接口参数,json格式字符串
-                };
-
-                // 构造字典文件数据
-                // 接口参数名称为files
-                CFormUpload.FileParameter fileParameter = new CFormUpload.FileParameter("files", fileContentBytes, fileName, null);
-                dicParam.Add(fileName, fileParameter);
+                    //获取附件上传Token
+                    string strToken = await _xieTongClient.GetTokenAsync(cancellationToken);
 
-                string strUrl = configProvince.HuiJu + "get_case_material_info";
-                // 上传附件
-                string strResult = CFormUpload.MultipartFormDataPost(strUrl, null, dicParam, strToken);
+                    //组装请求参数
+                    var model = new GetCaseMaterialInfoRequest
+                    {
+                        paras = dto,
+                        token = new ClientInfo(configProvince.ClientId, configProvince.ClientSecret)
+                    };
 
-                return JsonConvert.DeserializeObject<ProvinceResponse>(strResult);
+                    Dictionary<string, object> dicParam = new()
+                    {
+                        { "params",  System.Text.Json.JsonSerializer.Serialize(model) } // 第一个接口参数,json格式字符串
+                    };
+
+                    // 构造字典文件数据
+                    // 接口参数名称为files
+                    CFormUpload.FileParameter fileParameter = new CFormUpload.FileParameter("files", fileContentBytes, fileName, null);
+                    dicParam.Add(fileName, fileParameter);
+
+                    string strUrl = configProvince.HuiJu + "get_case_material_info";
+                    // 上传附件
+                    string strResult = CFormUpload.MultipartFormDataPost(strUrl, null, dicParam, strToken);
+                    return JsonConvert.DeserializeObject<ProvinceResponse>(strResult);
+                }
+                return new ProvinceResponse();
             }
             catch (Exception)
             {

+ 17 - 17
src/Hotline/DataSharing/Province/XieTong/Send/DsGetCaseResultReceive.cs

@@ -50,7 +50,7 @@ namespace Hotline.DataSharing.Province.XieTong.Send
         /// 办理人员
         /// </summary>
         [SugarColumn(ColumnDescription = "办理人员", ColumnDataType = "varchar(200)", IsNullable = true)]
-        public string EndName { get; set; }
+        public string? EndName { get; set; }
 
         /// <summary>
         /// 联系时间
@@ -116,7 +116,7 @@ namespace Hotline.DataSharing.Province.XieTong.Send
         /// 统一社会信用代码
         /// </summary>
         [SugarColumn(ColumnDescription = "统一社会信用代码", ColumnDataType = "varchar(50)", IsNullable = true)]
-        public string OperateDeptCode { get; set; }
+        public string? OperateDeptCode { get; set; }
 
         /// <summary>
         /// 任务单关联 guid
@@ -128,67 +128,67 @@ namespace Hotline.DataSharing.Province.XieTong.Send
         /// 是否提供公开答复口径
         /// </summary>
         [SugarColumn(ColumnDescription = "是否提供公开答复口径", ColumnDataType = "varchar(2)", IsNullable = true)]
-        public string MsgOpenByArea { get; set; }
+        public string? MsgOpenByArea { get; set; }
 
         /// <summary>
         /// 地方不公开处理结果原因
         /// </summary>
         [SugarColumn(ColumnDescription = "地方不公开处理结果原因", ColumnDataType = "varchar(1000)", IsNullable = true)]
-        public string AreaNotPublicReason { get; set; }
+        public string? AreaNotPublicReason { get; set; }
 
         /// <summary>
         /// 地方公开答复口径
         /// </summary>
         [SugarColumn(ColumnDescription = "地方公开答复口径", ColumnDataType = "varchar(1000)", IsNullable = true)]
-        public string FeedBackAnswerContent { get; set; }
+        public string? FeedBackAnswerContent { get; set; }
 
         /// <summary>
         /// 反馈人电话号码
         /// </summary>
         [SugarColumn(ColumnDescription = "反馈人电话号码", ColumnDataType = "varchar(11)", IsNullable = true)]
-        public string FeedBackTel { get; set; }
+        public string? FeedBackTel { get; set; }
 
         /// <summary>
         /// 备注-办理单位备注,仅审核可见,群众不可见,无备注填“无”
         /// </summary>
         [SugarColumn(ColumnDescription = " 备注-办理单位备注,仅审核可见", ColumnDataType = "text", IsNullable = true)]
-        public string Notes { get; set; } = "无";
+        public string? Notes { get; set; } = "无";
 
         /// <summary>
         /// 事件类型
         /// </summary>
         [SugarColumn(ColumnDescription = "事件类型", ColumnDataType = "varchar(10)", IsNullable = true)]
-        public string EventType { get; set; }
+        public string? EventType { get; set; }
 
         /// <summary>
         /// 事件名称
         /// </summary>
         [SugarColumn(ColumnDescription = "事件名称", ColumnDataType = "varchar(100)", IsNullable = true)]
-        public string Eventname { get; set; }
+        public string? Eventname { get; set; }
 
         /// <summary>
         /// 是否与网民取得联系
         /// </summary>
         [SugarColumn(ColumnDescription = "是否与网民取得联系", ColumnDataType = "varchar(5)", IsNullable = true)]
-        public string ContactFlag { get; set; }
+        public string? ContactFlag { get; set; }
 
         /// <summary>
         /// 是否邀请网民评价
         /// </summary>
         [SugarColumn(ColumnDescription = "是否邀请网民评价", ColumnDataType = "varchar(5)", IsNullable = true)]
-        public string AssessFlag { get; set; }
+        public string? AssessFlag { get; set; }
 
         /// <summary>
-        /// 网民评价类型
+        /// 网民评价类型0:不满意;1: 满意;2:表示理解
         /// </summary>
         [SugarColumn(ColumnDescription = "网民评价类型", ColumnDataType = "varchar(5)", IsNullable = true)]
-        public string AssessOpinion { get; set; }
+        public string? AssessOpinion { get; set; }
 
         /// <summary>
         /// 网民评价内容
         /// </summary>
         [SugarColumn(ColumnDescription = "网民评价内容", ColumnDataType = "varchar(3000)", IsNullable = true)]
-        public string AssessContent { get; set; }
+        public string? AssessContent { get; set; }
 
         /// <summary>
         /// 服务工单编号  
@@ -200,19 +200,19 @@ namespace Hotline.DataSharing.Province.XieTong.Send
         /// 材料标识
         /// </summary>
         [SugarColumn(ColumnDescription = "材料标识", ColumnDataType = "varchar(50)", IsNullable = true)]
-        public string CliengGuid { get; set; }
+        public string? CliengGuid { get; set; }
 
         /// <summary>
         /// 行政区划代码
         /// </summary>
         [SugarColumn(ColumnDescription = "行政区划代码", ColumnDataType = "varchar(24)")]
-        public string AreaCode { get; set; }
+        public string? AreaCode { get; set; }
 
         /// <summary>
         /// 接口返回结果
         /// </summary>
         [SugarColumn(ColumnDataType = "json", IsJson = true, IsNullable = true)]
-        public string ReturnResult { get; set; }
+        public string? ReturnResult { get; set; }
 
         /// <summary>
         /// 同步状态 0:待同步;	  1:同步成功;	 2:同步失败;

+ 8 - 8
src/Hotline/DataSharing/Province/XieTong/Send/DsZmhdCaseInfoPublic.cs

@@ -14,49 +14,49 @@ namespace Hotline.DataSharing.Province.XieTong.Send
         /// 部门答复时间
         /// </summary>
         [SugarColumn(ColumnDescription = "部门答复时间")]
-        public DateTime? ANSWER_TIME { get; set; }
+        public DateTime? AnswerTime { get; set; }
 
         /// <summary>
         /// 答复部门名称
         /// </summary>
         [SugarColumn(ColumnDescription = "答复部门名称", ColumnDataType = "varchar(100)")]
-        public string ANSWER_OU { get; set; }
+        public string AnswerOu { get; set; }
 
         /// <summary>
         /// 答复内容
         /// </summary>
         [SugarColumn(ColumnDescription = "答复内容", ColumnDataType = "text")]
-        public string ANSWER_CONTENT { get; set; }
+        public string AnswerContent { get; set; }
 
         /// <summary>
         /// 初审人姓名
         /// </summary>
         [SugarColumn(ColumnDescription = "初审人姓名", ColumnDataType = "varchar(100)")]
-        public string AUDIT_FIRST_NAME { get; set; }
+        public string AuditFirstName { get; set; }
 
         /// <summary>
         /// 初审时间
         /// </summary>
         [SugarColumn(ColumnDescription = "初审时间")]
-        public DateTime? AUDIT_FIRST_TIME { get; set; }
+        public DateTime? AuditFirstTime { get; set; }
 
         /// <summary>
         /// 二审人姓名
         /// </summary>
         [SugarColumn(ColumnDescription = "二审人姓名", ColumnDataType = "varchar(100)")]
-        public string AUDIT_SECOND_NAME { get; set; }
+        public string AuditSecondName { get; set; }
 
         /// <summary>
         /// 公开时间
         /// </summary>
         [SugarColumn(ColumnDescription = "公开时间")]
-        public DateTime? PUBLISH_DATE { get; set; }
+        public DateTime? PublishDate { get; set; }
 
         /// <summary>
         /// 公开意见
         /// </summary>
         [SugarColumn(ColumnDescription = "公开意见", ColumnDataType = "varchar(300)")]
-        public string PUBLIC_OPINION { get; set; }
+        public string PublicOpinion { get; set; }
 
         /// <summary>
         /// 服务工单编号  

+ 21 - 3
src/Hotline/Permissions/EPermission.cs

@@ -118,6 +118,11 @@ namespace Hotline.Permissions
         /// </summary>
         [Display(GroupName ="延期待办",Name ="延期审核",Description ="延期审核")]
         DelayOrderAudit = 100501,
+        /// <summary>
+        /// 延期退回
+        /// </summary>
+        [Display(GroupName ="延期待办",Name = "延期退回",Description ="延期退回")]
+        DelayOrderReturn = 100502,
         #endregion
 
         #region 甄别待办
@@ -129,9 +134,13 @@ namespace Hotline.Permissions
         /// <summary>
         /// 甄别审批
         /// </summary>
-        [Display(GroupName = "甄别审批",Name ="甄别审批",Description ="甄别审批")]
+        [Display(GroupName = "甄别待办", Name ="甄别审批",Description ="甄别审批")]
         ScreenOrderAudit = 100601,
-
+        /// <summary>
+        /// 甄别退回
+        /// </summary>
+        [Display(GroupName = "甄别待办",Name ="甄别退回",Description ="甄别退回")]
+        ScreenOrderReturn = 100602,
         #endregion
 
         #region 督办待办
@@ -159,7 +168,16 @@ namespace Hotline.Permissions
         #endregion
 
         #region 催办待办
-
+        /// <summary>
+        /// 催办待办
+        /// </summary>
+        [Display(GroupName = "催办待办",Name ="催办待办",Description = "催办待办")]
+        OrderUrging = 100900,
+        /// <summary>
+        /// 催办签收
+        /// </summary>
+        [Display(GroupName = "催办待办",Name ="催办签收",Description ="催办签收")]
+        OrderUrgingSign = 100902,
 
         #endregion
         #endregion