|
@@ -82,7 +82,7 @@ namespace Hotline.Application.Subscribers
|
|
|
private readonly ICalcExpireTime _expireTime;
|
|
|
private readonly ISessionContextProvider _sessionContextProvider;
|
|
|
private readonly ISessionContext _sessionContext;
|
|
|
- private readonly ISessionContextCreator _sessionContextCreator;
|
|
|
+ private readonly ISessionContextManager _sessionContextManager;
|
|
|
private readonly ILogger<DataSharingSubscriber> _logger;
|
|
|
|
|
|
public DataSharingSubscriber(
|
|
@@ -120,6 +120,7 @@ namespace Hotline.Application.Subscribers
|
|
|
ISessionContextProvider sessionContextProvider,
|
|
|
ISessionContext sessionContext,
|
|
|
ISessionContextCreator sessionContextCreator,
|
|
|
+ ISessionContextManager sessionContextManager,
|
|
|
ILogger<DataSharingSubscriber> logger)
|
|
|
{
|
|
|
_orderSendBackRepository = orderSendBackRepository;
|
|
@@ -155,7 +156,7 @@ namespace Hotline.Application.Subscribers
|
|
|
_expireTime = expireTime;
|
|
|
_sessionContextProvider = sessionContextProvider;
|
|
|
_sessionContext = sessionContext;
|
|
|
- _sessionContextCreator = sessionContextCreator;
|
|
|
+ _sessionContextManager = sessionContextManager;
|
|
|
_logger = logger;
|
|
|
}
|
|
|
|
|
@@ -261,6 +262,10 @@ namespace Hotline.Application.Subscribers
|
|
|
if (order is null)
|
|
|
throw new UserFriendlyException("未查询到工单");
|
|
|
|
|
|
+ //SessionContextCreator.CreateSessionContext(_sessionContextProvider, dto.Source);
|
|
|
+ // await _sessionContextCreator.CreateSessionContextAsync(dto.Source, cancellationToken);
|
|
|
+ _sessionContextManager.ChangeSessionContext(dto.Source);
|
|
|
+
|
|
|
OrderRevoke orderRevoke = new()
|
|
|
{
|
|
|
OrderId = order.Id,
|
|
@@ -288,22 +293,22 @@ namespace Hotline.Application.Subscribers
|
|
|
if (_appOptions.Value.IsZiGong)
|
|
|
{
|
|
|
//expiredTimeConfig = await _expireTime.CalcExpiredTime(DateTime.Now, order.StartTime.Value, EFlowDirection.CenterToCenter, order.Adapt<OrderTimeClacInfo>());
|
|
|
- expiredTimeConfig = await _expireTime.CalcExpiredTime(DateTime.Now, DateTime.Now, EFlowDirection.CenterToCenter, order.Adapt<OrderTimeClacInfo>());
|
|
|
+ expiredTimeConfig = await _expireTime.CalcExpiredTime(DateTime.Now, DateTime.Now, EFlowDirection.CenterToCenter,
|
|
|
+ order.Adapt<OrderTimeClacInfo>());
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//期满时间
|
|
|
//expiredTimeConfig = _timeLimitDomainService.CalcExpiredTime(DateTime.Now, EFlowDirection.CenterToOrg, order.AcceptTypeCode);
|
|
|
//expiredTimeConfig = await _expireTime.CalcExpiredTime(DateTime.Now, order.CenterToOrgTime.Value, EFlowDirection.CenterToOrg, order.Adapt<OrderTimeClacInfo>());
|
|
|
- expiredTimeConfig = await _expireTime.CalcExpiredTime(DateTime.Now, DateTime.Now, EFlowDirection.CenterToOrg, order.Adapt<OrderTimeClacInfo>());
|
|
|
+ expiredTimeConfig =
|
|
|
+ await _expireTime.CalcExpiredTime(DateTime.Now, DateTime.Now, EFlowDirection.CenterToOrg, order.Adapt<OrderTimeClacInfo>());
|
|
|
}
|
|
|
|
|
|
_mapper.Map(expiredTimeConfig, order);
|
|
|
await _orderRepository.UpdateAsync(order, cancellationToken);
|
|
|
- //宜宾需求:特提至中心(优先派单组无派单组节点就特提至坐席),由派单员归档
|
|
|
- //SessionContextCreator.CreateSessionContext(_sessionContextProvider, dto.Source);
|
|
|
- await _sessionContextCreator.CreateSessionContextAsync(dto.Source, cancellationToken);
|
|
|
|
|
|
+ //宜宾需求:特提至中心(优先派单组无派单组节点就特提至坐席),由派单员归档
|
|
|
if (string.IsNullOrEmpty(order?.WorkflowId))
|
|
|
{
|
|
|
var startDto = new StartWorkflowDto
|
|
@@ -512,20 +517,16 @@ namespace Hotline.Application.Subscribers
|
|
|
[CapSubscribe(Hotline.Share.Mq.EventNames.SharingOrderScreen)]
|
|
|
public async Task RecOrderScreenResultAsync(ProvinceSendScreenResultDto dto, CancellationToken cancellationToken)
|
|
|
{
|
|
|
- //var order = await _orderRepository.Queryable()
|
|
|
- // .Where(x => x.ProvinceNo == dto.ProvinceScreenResult!.CaseSerial)
|
|
|
- // .FirstAsync(cancellationToken);
|
|
|
- //var orderScreen = await _orderScreenRepository.Queryable()
|
|
|
- // .Where(x => x.OrderId == order.Id && x.Status == Share.Enums.Order.EScreenStatus.Approval)
|
|
|
- // .FirstAsync(cancellationToken);
|
|
|
-
|
|
|
var orderScreen = await _orderScreenRepository.Queryable()
|
|
|
- .Where(x => x.Order.ReceiveProvinceNo == dto.ProvinceScreenResult.CaseSerial &&
|
|
|
- x.Status == EScreenStatus.Approval)
|
|
|
- .FirstAsync(cancellationToken);
|
|
|
+ .FirstAsync(x => x.Order.ReceiveProvinceNo == dto.ProvinceScreenResult.CaseSerial &&
|
|
|
+ x.Status == EScreenStatus.Approval, cancellationToken);
|
|
|
+ if (orderScreen is null)
|
|
|
+ throw new UserFriendlyException($"收到ds推送:{EventNames.SharingOrderScreen}, 未查询到甄别数据, 省交办编号:{dto.ProvinceScreenResult.CaseSerial}");
|
|
|
|
|
|
//SessionContextCreator.CreateSessionContext(_sessionContextProvider, dto.Source);
|
|
|
- await _sessionContextCreator.CreateSessionContextAsync(dto.Source, cancellationToken);
|
|
|
+ // await _sessionContextCreator.CreateSessionContextAsync(dto.Source, cancellationToken);
|
|
|
+ _sessionContextManager.ChangeSessionContext(dto.Source);
|
|
|
+
|
|
|
|
|
|
if (int.Parse(dto.ProvinceScreenResult.AuditResult) == 0)
|
|
|
{
|
|
@@ -538,10 +539,12 @@ namespace Hotline.Application.Subscribers
|
|
|
if (int.Parse(dto.ProvinceScreenResult.AuditResult) > 0)
|
|
|
{
|
|
|
await _workflowApplication.HandleToEndAsync(orderScreen.WorkflowId, dto.ProvinceScreenResult.AuditOpinion, null,
|
|
|
- reviewResult: int.Parse(dto.ProvinceScreenResult.AuditResult) == 1
|
|
|
- ? Share.Enums.FlowEngine.EReviewResult.Approval
|
|
|
- : Share.Enums.FlowEngine.EReviewResult.Failed, cancellationToken: cancellationToken);
|
|
|
- orderScreen.Status = int.Parse(dto.ProvinceScreenResult.AuditResult) == 1 ? Share.Enums.Order.EScreenStatus.End : Share.Enums.Order.EScreenStatus.Refuse;
|
|
|
+ reviewResult: int.Parse(dto.ProvinceScreenResult.AuditResult) == 1
|
|
|
+ ? Share.Enums.FlowEngine.EReviewResult.Approval
|
|
|
+ : Share.Enums.FlowEngine.EReviewResult.Failed, cancellationToken: cancellationToken);
|
|
|
+ orderScreen.Status = int.Parse(dto.ProvinceScreenResult.AuditResult) == 1
|
|
|
+ ? Share.Enums.Order.EScreenStatus.End
|
|
|
+ : Share.Enums.Order.EScreenStatus.Refuse;
|
|
|
//if (orderScreen.Status == Share.Enums.Order.EScreenStatus.End)
|
|
|
//{
|
|
|
// var visitDetail = await _orderVisitedDetailRepository.GetAsync(orderScreen.VisitDetailId, cancellationToken);
|
|
@@ -567,15 +570,20 @@ namespace Hotline.Application.Subscribers
|
|
|
{
|
|
|
var visitDetails = await _orderVisitedDetailRepository.Queryable().Where(x => x.OrderVisit.OrderId == orderScreen.OrderId &&
|
|
|
x.VisitTarget == EVisitTarget.Org && (
|
|
|
- SqlFunc.JsonField(x.OrgProcessingResults, "Key") ==
|
|
|
+ SqlFunc.JsonField(x.OrgProcessingResults,
|
|
|
+ "Key") ==
|
|
|
"1" ||
|
|
|
- SqlFunc.JsonField(x.OrgProcessingResults, "Key") ==
|
|
|
+ SqlFunc.JsonField(x.OrgProcessingResults,
|
|
|
+ "Key") ==
|
|
|
"2" ||
|
|
|
- SqlFunc.JsonField(x.OrgHandledAttitude, "Key") ==
|
|
|
+ SqlFunc.JsonField(x.OrgHandledAttitude,
|
|
|
+ "Key") ==
|
|
|
"1" ||
|
|
|
- SqlFunc.JsonField(x.OrgHandledAttitude, "Key") ==
|
|
|
+ SqlFunc.JsonField(x.OrgHandledAttitude,
|
|
|
+ "Key") ==
|
|
|
"2"
|
|
|
- ) && x.Id != orderScreen.VisitDetailId).ToListAsync();
|
|
|
+ ) && x.Id != orderScreen.VisitDetailId)
|
|
|
+ .ToListAsync();
|
|
|
foreach (var visitDetail in visitDetails)
|
|
|
{
|
|
|
if (visitDetail != null)
|
|
@@ -797,6 +805,10 @@ namespace Hotline.Application.Subscribers
|
|
|
var order = await _orderRepository.GetAsync(x => x.ReceiveProvinceNo == dto.No, cancellationToken);
|
|
|
if (order != null)
|
|
|
{
|
|
|
+ //SessionContextCreator.CreateSessionContext(_sessionContextProvider, dto.Source);
|
|
|
+ // await _sessionContextCreator.CreateSessionContextAsync(dto.Source, cancellationToken);
|
|
|
+ _sessionContextManager.ChangeSessionContext(dto.Source);
|
|
|
+
|
|
|
//查询延期
|
|
|
var orderDelay = await _orderDelayRepository
|
|
|
.GetAsync(x => x.OrderId == order.Id && x.DelayState == EDelayState.Examining, cancellationToken);
|
|
@@ -811,14 +823,8 @@ namespace Hotline.Application.Subscribers
|
|
|
orderDelay.FileJson = await _fileRepository.AddFileAsync(dto.Files, orderDelay.Id, orderDelay.WorkflowId, cancellationToken);
|
|
|
await _orderDelayRepository.UpdateAsync(orderDelay, cancellationToken);
|
|
|
|
|
|
- //var setting = _systemSettingCacheManager.GetSetting(SettingConstants.CityBaseConfiguration)?.SettingValue[0];
|
|
|
- //CityBaseConfiguration cityBase = JsonConvert.DeserializeObject<CityBaseConfiguration>(setting);
|
|
|
-
|
|
|
- //SessionContextCreator.CreateSessionContext(_sessionContextProvider, dto.Source);
|
|
|
- await _sessionContextCreator.CreateSessionContextAsync(dto.Source, cancellationToken);
|
|
|
-
|
|
|
await _workflowApplication.HandleToEndAsync(orderDelay.WorkflowId, dto.Opinion, dto.Files,
|
|
|
- reviewResult: dto.IsPass ? EReviewResult.Approval : EReviewResult.Failed, cancellationToken: cancellationToken);
|
|
|
+ reviewResult: dto.IsPass ? EReviewResult.Approval : EReviewResult.Failed, cancellationToken: cancellationToken);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -826,11 +832,9 @@ namespace Hotline.Application.Subscribers
|
|
|
/// <summary>
|
|
|
/// 接收工单处理结果
|
|
|
/// </summary>
|
|
|
- [CapSubscribe(EventNames.SharingOrderReultSend)]
|
|
|
+ [CapSubscribe(EventNames.SharingOrderReultSend, Group = "debug")]
|
|
|
public async Task RecOrderResultAsync(OrderResultDto dto, CancellationToken cancellationToken)
|
|
|
{
|
|
|
- //SessionContextCreator.CreateSessionContext(_sessionContextProvider, dto.Source);
|
|
|
- await _sessionContextCreator.CreateSessionContextAsync(dto.Source, cancellationToken);
|
|
|
var order = await _orderRepository.Queryable().Includes(x => x.OrderExtension).FirstAsync(x => x.Id == dto.OrderId, cancellationToken);
|
|
|
if (order is null)
|
|
|
throw new UserFriendlyException($"无效工单编号, orderId: {dto.OrderId}");
|
|
@@ -846,6 +850,10 @@ namespace Hotline.Application.Subscribers
|
|
|
//var setting = _systemSettingCacheManager.GetSetting(SettingConstants.CityBaseConfiguration)?.SettingValue[0];
|
|
|
//CityBaseConfiguration cityBase = JsonConvert.DeserializeObject<CityBaseConfiguration>(setting);
|
|
|
|
|
|
+ //SessionContextCreator.CreateSessionContext(_sessionContextProvider, dto.Source);
|
|
|
+ //await _sessionContextCreator.CreateSessionContextAsync(dto.Source, cancellationToken);
|
|
|
+ _sessionContextManager.ChangeSessionContext(dto.Source);
|
|
|
+
|
|
|
switch (dto.FinishType)
|
|
|
{
|
|
|
case "0":
|
|
@@ -855,14 +863,16 @@ namespace Hotline.Application.Subscribers
|
|
|
if (_appOptions.Value.IsZiGong)
|
|
|
{
|
|
|
expiredTimeConfig =
|
|
|
- await _expireTime.CalcExpiredTime(DateTime.Now, DateTime.Now, EFlowDirection.CenterToCenter, order.Adapt<OrderTimeClacInfo>());
|
|
|
+ await _expireTime.CalcExpiredTime(DateTime.Now, DateTime.Now, EFlowDirection.CenterToCenter,
|
|
|
+ order.Adapt<OrderTimeClacInfo>());
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
//期满时间
|
|
|
//expiredTimeConfig = _timeLimitDomainService.CalcExpiredTime(DateTime.Now, EFlowDirection.CenterToOrg, order.AcceptTypeCode);
|
|
|
expiredTimeConfig =
|
|
|
- await _expireTime.CalcExpiredTime(DateTime.Now, DateTime.Now, EFlowDirection.CenterToOrg, order.Adapt<OrderTimeClacInfo>());
|
|
|
+ await _expireTime.CalcExpiredTime(DateTime.Now, DateTime.Now, EFlowDirection.CenterToOrg,
|
|
|
+ order.Adapt<OrderTimeClacInfo>());
|
|
|
}
|
|
|
|
|
|
_mapper.Map(expiredTimeConfig, order);
|
|
@@ -878,9 +888,9 @@ namespace Hotline.Application.Subscribers
|
|
|
|
|
|
var handleMode = order.OrderExtension is null ? EHandleMode.Recall : EHandleMode.ProvinceHandlePrevious;
|
|
|
|
|
|
-
|
|
|
var (isPaiDan, workflow) = await _workflowDomainService.RecallToCenterFirstToSendAsync(order.WorkflowId, dto.Opinion,
|
|
|
- order.Status >= EOrderStatus.Filed, order.ExpiredTime, EHandleMode.ProvinceHandlePrevious, cancellationToken: cancellationToken);
|
|
|
+ order.Status >= EOrderStatus.Filed, order.ExpiredTime, EHandleMode.ProvinceHandlePrevious,
|
|
|
+ cancellationToken: cancellationToken);
|
|
|
|
|
|
order.Status = isPaiDan ? EOrderStatus.Special : EOrderStatus.WaitForAccept;
|
|
|
order.CurrentStepName = workflow.CurrentStepName;
|
|
@@ -912,13 +922,16 @@ namespace Hotline.Application.Subscribers
|
|
|
{
|
|
|
order.ActualOpinion += dto.Opinion;
|
|
|
}
|
|
|
+
|
|
|
order.FileOpinion = order.ActualOpinion;
|
|
|
- await _orderRepository.Updateable(order).UpdateColumns(d => d.ActualOpinion).UpdateColumns(d => d.FileOpinion).ExecuteCommandAsync(cancellationToken);
|
|
|
+ await _orderRepository.Updateable(order).UpdateColumns(d => d.ActualOpinion).UpdateColumns(d => d.FileOpinion)
|
|
|
+ .ExecuteCommandAsync(cancellationToken);
|
|
|
await _workflowDomainService.AppendFileOpinionAsync(order.WorkflowId, dto.Opinion, dto.Files, cancellationToken);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- await _workflowApplication.HandleToEndAsync(order.WorkflowId, dto.Opinion, dto.Files, expiredTime: order.ExpiredTime, cancellationToken: cancellationToken);
|
|
|
+ await _workflowApplication.HandleToEndAsync(order.WorkflowId, dto.Opinion, dto.Files, expiredTime: order.ExpiredTime,
|
|
|
+ cancellationToken: cancellationToken);
|
|
|
}
|
|
|
|
|
|
break;
|
|
@@ -1300,7 +1313,8 @@ namespace Hotline.Application.Subscribers
|
|
|
orderData.SourceChannelCode = "QT";
|
|
|
|
|
|
var orderDto = _mapper.Map<OrderDto>(orderData);
|
|
|
- await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderExpiredTimeUpdate, orderDto, cancellationToken: cancellationToken);
|
|
|
+ await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderExpiredTimeUpdate, orderDto,
|
|
|
+ cancellationToken: cancellationToken);
|
|
|
}
|
|
|
}
|
|
|
}
|