|
@@ -13,14 +13,17 @@ using DataSharing.Share.Enums;
|
|
|
using DotNetCore.CAP;
|
|
|
using Hotline.Share.Dtos.Knowledge;
|
|
|
using Hotline.Share.Dtos.Order;
|
|
|
+using Hotline.Share.Dtos.TrCallCenter;
|
|
|
using Hotline.Share.Enums.FlowEngine;
|
|
|
using Hotline.Share.Enums.Order;
|
|
|
using MapsterMapper;
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
using System.Security.Cryptography;
|
|
|
+using System.Security.Policy;
|
|
|
using System.Text;
|
|
|
using XF.Domain.Dependency;
|
|
|
using XF.Domain.Repository;
|
|
|
+using static System.Runtime.InteropServices.JavaScript.JSType;
|
|
|
|
|
|
namespace DataSharing.Application.Receivers
|
|
|
{
|
|
@@ -256,15 +259,18 @@ namespace DataSharing.Application.Receivers
|
|
|
/// <param name="dto"></param>
|
|
|
/// <returns></returns>
|
|
|
[CapSubscribe(Hotline.Share.Mq.EventNames.HotlineOrderFlowStarted)]
|
|
|
- public async Task OrderFlowStartedAsync(OrderDto dto, CancellationToken cancellationToken)
|
|
|
+ public async Task OrderFlowStartedAsync(PublishCallRecrodDto pushdto, CancellationToken cancellationToken)
|
|
|
{
|
|
|
+ var dto = pushdto.Order;
|
|
|
+
|
|
|
+ var configProvince = _channelConfigurationManager.GetConfigurationProvince();
|
|
|
+
|
|
|
//如果不是省上派下来的工单,需要汇聚到省上
|
|
|
- if (!dto.IsProvince)
|
|
|
+ if (dto is not null && !dto.IsProvince)
|
|
|
{
|
|
|
var data = await InitDataAsync(dto, cancellationToken);
|
|
|
|
|
|
#region 处理请求参数
|
|
|
- var configProvince = _channelConfigurationManager.GetConfigurationProvince();
|
|
|
var request = new ProvinceListRequest<SubmitCaseInfo>(configProvince.ClientId, configProvince.ClientSecret);
|
|
|
request.SetData(new List<SubmitCaseInfo>() { data });
|
|
|
var jsonData = request.ToString();
|
|
@@ -277,6 +283,23 @@ namespace DataSharing.Application.Receivers
|
|
|
await FileDataAsync(dto.FileJson, dto.ProvinceNo, data.CliengGuid, EMaterialType.Acceptance, data.AreaCode, cancellationToken);
|
|
|
}
|
|
|
|
|
|
+ //再次推送通话记录
|
|
|
+ if (pushdto.TrCallRecordDto is not null)
|
|
|
+ {
|
|
|
+ var dataCall = _mapper.Map<SubmitCaseRecordInfo>(pushdto.TrCallRecordDto);
|
|
|
+ dataCall.AreaCode = dto.AreaCode;
|
|
|
+ dataCall.CaseSerial = dto.ProvinceNo;
|
|
|
+
|
|
|
+ #region 处理请求参数
|
|
|
+ var requestCall = new ProvinceListRequest<SubmitCaseRecordInfo>(configProvince.ClientId, configProvince.ClientSecret);
|
|
|
+ requestCall.SetData(new List<SubmitCaseRecordInfo>() { dataCall });
|
|
|
+ var jsonDataCall = requestCall.ToString();
|
|
|
+ var urlCall = configProvince.HuiJu + "submit_case_record";
|
|
|
+ //将待推送数据写入待推送表
|
|
|
+ await InitPushDataAsync("SubmitCaseRecord", urlCall, jsonDataCall, cancellationToken, pathType: EPathType.HuiJu, taskPriority: 20);
|
|
|
+ #endregion
|
|
|
+ }
|
|
|
+
|
|
|
//本地保存工单基础数据
|
|
|
if (!await _dsOrderRepository.AnyAsync(p => p.OrderId == dto.Id, cancellationToken))
|
|
|
{
|
|
@@ -497,34 +520,36 @@ namespace DataSharing.Application.Receivers
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 挂电话推送----电话记录---1
|
|
|
+ /// 挂电话推送----电话记录---1List<CallConnectOrderDto> dtos
|
|
|
/// </summary>
|
|
|
/// <param name="dtos"></param>
|
|
|
/// <returns></returns>
|
|
|
[CapSubscribe(Hotline.Share.Mq.EventNames.HotlineCallBye)]
|
|
|
- public async Task SubmitCaseRecordAsync(List<CallConnectOrderDto> dtos, CancellationToken cancellationToken)
|
|
|
+ public async Task SubmitCaseRecordAsync(PublishCallRecrodDto dto, CancellationToken cancellationToken)
|
|
|
{
|
|
|
- List<SubmitCaseRecordInfo> recordList = new();
|
|
|
- foreach (var item in dtos)
|
|
|
+ var data = _mapper.Map<SubmitCaseRecordInfo>(dto.TrCallRecordDto);
|
|
|
+ if (dto.Order != null)
|
|
|
{
|
|
|
- var data = _mapper.Map<SubmitCaseRecordInfo>(item);
|
|
|
+ data.AreaCode = dto.Order.AreaCode;
|
|
|
+ if (!string.IsNullOrEmpty(dto.Order.ProvinceNo))
|
|
|
+ data.CaseSerial = dto.Order.ProvinceNo;
|
|
|
+ }
|
|
|
+ else
|
|
|
data.AreaCode = _channelConfigurationManager.GetConfigurationCityCode().AreaCode;
|
|
|
|
|
|
- if (item.Order != null && !string.IsNullOrEmpty(item.Order.ProvinceNo))
|
|
|
- data.CaseSerial = item.Order.ProvinceNo;
|
|
|
|
|
|
- #region 处理请求参数
|
|
|
- var configProvince = _channelConfigurationManager.GetConfigurationProvince();
|
|
|
- var request = new ProvinceListRequest<SubmitCaseRecordInfo>(configProvince.ClientId, configProvince.ClientSecret);
|
|
|
- request.SetData(new List<SubmitCaseRecordInfo>() { data });
|
|
|
- var jsonData = request.ToString();
|
|
|
- var url = configProvince.HuiJu + "submit_case_record";
|
|
|
- #endregion
|
|
|
+ #region 处理请求参数
|
|
|
+ var configProvince = _channelConfigurationManager.GetConfigurationProvince();
|
|
|
+ var request = new ProvinceListRequest<SubmitCaseRecordInfo>(configProvince.ClientId, configProvince.ClientSecret);
|
|
|
+ request.SetData(new List<SubmitCaseRecordInfo>() { data });
|
|
|
+ var jsonData = request.ToString();
|
|
|
+ var url = configProvince.HuiJu + "submit_case_record";
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ //将待推送数据写入待推送表
|
|
|
+ await InitPushDataAsync("SubmitCaseRecord", url, jsonData, cancellationToken, pathType: EPathType.HuiJu, taskPriority: 20);
|
|
|
|
|
|
- //将待推送数据写入待推送表
|
|
|
- await InitPushDataAsync("SubmitCaseRecord", url, jsonData, cancellationToken, pathType: EPathType.HuiJu, taskPriority: 20);
|
|
|
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -533,11 +558,17 @@ namespace DataSharing.Application.Receivers
|
|
|
/// <param name="dto"></param>
|
|
|
/// <returns></returns>
|
|
|
[CapSubscribe(Hotline.Share.Mq.EventNames.HotlineCallConnectWithOrder)]
|
|
|
- public async Task SubmitCaseRecordOrderAsync(CallConnectOrderDto dto, CancellationToken cancellationToken)
|
|
|
+ public async Task SubmitCaseRecordOrderAsync(PublishCallRecrodDto dto, CancellationToken cancellationToken)
|
|
|
{
|
|
|
- var data = _mapper.Map<SubmitCaseRecordInfo>(dto);
|
|
|
- data.AreaCode = _channelConfigurationManager.GetConfigurationCityCode().AreaCode;
|
|
|
- data.CaseSerial = dto.Order.ProvinceNo;
|
|
|
+ var data = _mapper.Map<SubmitCaseRecordInfo>(dto.TrCallRecordDto);
|
|
|
+ if (dto.Order != null)
|
|
|
+ {
|
|
|
+ data.AreaCode = dto.Order.AreaCode;
|
|
|
+ if (!string.IsNullOrEmpty(dto.Order.ProvinceNo))
|
|
|
+ data.CaseSerial = dto.Order.ProvinceNo;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ data.AreaCode = _channelConfigurationManager.GetConfigurationCityCode().AreaCode;
|
|
|
|
|
|
#region 处理请求参数
|
|
|
var configProvince = _channelConfigurationManager.GetConfigurationProvince();
|