|
@@ -1,4 +1,5 @@
|
|
|
-using DataSharing.RawData;
|
|
|
+using DataSharing.Province.SendTask.SubmitCaseInfo;
|
|
|
+using DataSharing.RawData;
|
|
|
using DataSharing.SendTask;
|
|
|
using DataSharing.Share.Consts;
|
|
|
using DataSharing.Share.Dtos;
|
|
@@ -53,6 +54,7 @@ namespace DataSharing.Province
|
|
|
private readonly ISharingConfigurationManager _sharingConfigurationManager;
|
|
|
private readonly IInitPushDataService _initPushDataService;
|
|
|
private readonly IRepository<DsGetCaseMaterialInfo> _getCaseMaterialInfoRepository;
|
|
|
+ private readonly IRepository<DsSendTaskSubmitCaseInfo> _dsSendTaskSubmitCaseInfoRepository;
|
|
|
|
|
|
/// <summary>
|
|
|
///
|
|
@@ -90,7 +92,8 @@ namespace DataSharing.Province
|
|
|
IRepository<DsOrderVisitSend> dsOrderVisitSendRepository,
|
|
|
ISharingConfigurationManager sharingConfigurationManager,
|
|
|
IInitPushDataService initPushDataService,
|
|
|
- IRepository<DsGetCaseMaterialInfo> getCaseMaterialInfoRepository)
|
|
|
+ IRepository<DsGetCaseMaterialInfo> getCaseMaterialInfoRepository,
|
|
|
+ IRepository<DsSendTaskSubmitCaseInfo> dsSendTaskSubmitCaseInfoRepository)
|
|
|
{
|
|
|
_mapper = mapper;
|
|
|
_logger = logger;
|
|
@@ -109,6 +112,7 @@ namespace DataSharing.Province
|
|
|
_sharingConfigurationManager = sharingConfigurationManager;
|
|
|
_initPushDataService = initPushDataService;
|
|
|
_getCaseMaterialInfoRepository = getCaseMaterialInfoRepository;
|
|
|
+ _dsSendTaskSubmitCaseInfoRepository = dsSendTaskSubmitCaseInfoRepository;
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
@@ -360,7 +364,7 @@ namespace DataSharing.Province
|
|
|
}
|
|
|
|
|
|
//推送当前办理信息
|
|
|
- await SubmitCaseProcessFlowAsync(new OrderFlowDto { Order = pushdto.Order, WorkflowTrace = pushdto.WorkflowTrace, ExpiredTimeChanged = false }, cancellationToken);
|
|
|
+ await SubmitCaseProcessFlowAsync(new OrderFlowDto { Order = pushdto.Order, WorkflowTrace = pushdto.WorkflowTrace, ExpiredTimeChanged = false }, true, cancellationToken);
|
|
|
|
|
|
//再次推送通话记录
|
|
|
if (pushdto.TrCallRecordDto is not null)
|
|
@@ -412,6 +416,8 @@ namespace DataSharing.Province
|
|
|
//如果不是省上派下来的工单,需要汇聚到省上
|
|
|
if (!dto.IsProvince)
|
|
|
{
|
|
|
+ if (!await _dsSendTaskSubmitCaseInfoRepository.AnyAsync(p => p.ProvinceNo == dto.ProvinceNo && p.IsSuccess == ESendTaskState.PushSuccess, cancellationToken: cancellationToken))
|
|
|
+ return;
|
|
|
var data = InitDataAsync(dto);
|
|
|
var validator = new SubmitCaseInfoValidator();
|
|
|
var validResult = await validator.ValidateAsync(data, cancellationToken);
|
|
@@ -448,11 +454,13 @@ namespace DataSharing.Province
|
|
|
if (dto.WorkflowTrace.HandlerOrgAreaCode.Length > 6)
|
|
|
dto.WorkflowTrace.HandlerOrgAreaCode = dto.WorkflowTrace.HandlerOrgAreaCode.Substring(0, 6);
|
|
|
}
|
|
|
+ var ispush = await _dsSendTaskSubmitCaseInfoRepository.AnyAsync(p => p.ProvinceNo == dto.Order.ProvinceNo && p.IsSuccess == ESendTaskState.PushSuccess, cancellationToken: cancellationToken);
|
|
|
|
|
|
- await SubmitCaseProcessFlowAsync(dto, cancellationToken);
|
|
|
+ await SubmitCaseProcessFlowAsync(dto, ispush, cancellationToken);
|
|
|
//期满时间变更或者办理节点为话务部,重新推送数据
|
|
|
if ((dto.ExpiredTimeChanged || dto.Order.ActualHandleStepName == "话务部") && !dto.Order.IsProvince)
|
|
|
{
|
|
|
+ if (!ispush) return;
|
|
|
var submitCaseInfo = InitDataAsync(dto.Order);
|
|
|
var validator = new SubmitCaseInfoValidator();
|
|
|
var validResult = await validator.ValidateAsync(submitCaseInfo, cancellationToken);
|
|
@@ -580,6 +588,9 @@ namespace DataSharing.Province
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ if (!await _dsSendTaskSubmitCaseInfoRepository.AnyAsync(p => p.ProvinceNo == dto.Order.ProvinceNo && p.IsSuccess == ESendTaskState.PushSuccess, cancellationToken: cancellationToken))
|
|
|
+ return;
|
|
|
+
|
|
|
var data = _mapper.Map<SubmitVisitInfo>(dto);
|
|
|
data.VisitType = visitType;
|
|
|
data.CliengGuid = Guid.NewGuid().ToString();
|
|
@@ -638,8 +649,13 @@ namespace DataSharing.Province
|
|
|
//推送办理记录
|
|
|
dto.ExpiredTimeChanged = false;
|
|
|
|
|
|
+ var ispush = await _dsSendTaskSubmitCaseInfoRepository.AnyAsync(p => p.ProvinceNo == dto.Order.ProvinceNo && p.IsSuccess == ESendTaskState.PushSuccess, cancellationToken: cancellationToken);
|
|
|
+
|
|
|
//推送办理过程
|
|
|
- await SubmitCaseProcessFlowAsync(dto, cancellationToken);
|
|
|
+ await SubmitCaseProcessFlowAsync(dto, ispush, cancellationToken);
|
|
|
+
|
|
|
+ if (!ispush)
|
|
|
+ return;
|
|
|
|
|
|
//判断是否是热线中心
|
|
|
if (!string.IsNullOrEmpty(dto.Order.ActualHandleOrgCode) && dto.Order.ActualHandleOrgCode == "001")
|
|
@@ -1450,7 +1466,7 @@ namespace DataSharing.Province
|
|
|
/// <param name="cancellationToken"></param>
|
|
|
/// <returns></returns>
|
|
|
/// <exception cref="UserFriendlyException"></exception>
|
|
|
- private async Task SubmitCaseProcessFlowAsync(OrderFlowDto dto, CancellationToken cancellationToken)
|
|
|
+ private async Task SubmitCaseProcessFlowAsync(OrderFlowDto dto, bool ispush, CancellationToken cancellationToken)
|
|
|
{
|
|
|
//判断是否是热线中心
|
|
|
if (!string.IsNullOrEmpty(dto.Order.ActualHandleOrgCode) && dto.Order.ActualHandleOrgCode == "001")
|
|
@@ -1496,6 +1512,9 @@ namespace DataSharing.Province
|
|
|
}
|
|
|
else //如果不是省上派下来的工单
|
|
|
{
|
|
|
+ if (!ispush)
|
|
|
+ return;
|
|
|
+
|
|
|
//本地工单走市州接口
|
|
|
var data = _mapper.Map<SubmitCaseProcessInfo>(dto);
|
|
|
data.TacheName = "70:" + data.DeptName;
|