|
@@ -85,13 +85,12 @@ public class WorkflowNextHandler : INotificationHandler<NextStepNotify>
|
|
|
var workflow = notification.Workflow;
|
|
|
var data = notification.Dto;
|
|
|
|
|
|
- DefinitionTag? currentTag = null;
|
|
|
- if (!string.IsNullOrEmpty(notification.Trace.Tag))
|
|
|
- currentTag = System.Text.Json.JsonSerializer.Deserialize<DefinitionTag>(notification.Trace.Tag);
|
|
|
- DefinitionTag? nextTag = null;
|
|
|
- if (!string.IsNullOrEmpty(notification.NextStepDefine.Tag))
|
|
|
- nextTag = System.Text.Json.JsonSerializer.Deserialize<DefinitionTag>(notification.NextStepDefine.Tag);
|
|
|
-
|
|
|
+ var currentTag = string.IsNullOrEmpty(notification.Trace.Tag)
|
|
|
+ ? null
|
|
|
+ : System.Text.Json.JsonSerializer.Deserialize<DefinitionTag>(notification.Trace.Tag);
|
|
|
+ var nextTag = string.IsNullOrEmpty(notification.NextStepDefine.Tag)
|
|
|
+ ? null
|
|
|
+ : System.Text.Json.JsonSerializer.Deserialize<DefinitionTag>(notification.NextStepDefine.Tag);
|
|
|
|
|
|
switch (workflow.ModuleCode)
|
|
|
{
|
|
@@ -101,30 +100,35 @@ public class WorkflowNextHandler : INotificationHandler<NextStepNotify>
|
|
|
_mapper.Map(workflow, order);
|
|
|
|
|
|
var expiredTimeChanged = false;
|
|
|
- if (data.FlowDirection.HasValue && data.External.TimeLimit.HasValue &&
|
|
|
- data.External.TimeLimitUnit.HasValue)
|
|
|
+ if (data.FlowDirection.HasValue
|
|
|
+ && data.External.TimeLimit.HasValue
|
|
|
+ && data.External.TimeLimitUnit.HasValue)
|
|
|
{
|
|
|
// 1. calc expiredTime 2. update order.expiredTime 3. update workflow.expiredTime 4. publish province
|
|
|
|
|
|
- var expiredTime = _timeLimitDomainService.CalcEndTime(DateTime.Now,
|
|
|
- data.External.TimeLimitUnit.Value,
|
|
|
- data.External.TimeLimit.Value, data.FlowDirection is EFlowDirection.OrgToCenter);
|
|
|
+ // var expiredTime = _timeLimitDomainService.CalcEndTime(DateTime.Now,
|
|
|
+ // data.External.TimeLimitUnit.Value,
|
|
|
+ // data.External.TimeLimit.Value, data.FlowDirection is EFlowDirection.OrgToCenter);
|
|
|
+
|
|
|
+ var expiredTimeConfig = _timeLimitDomainService.CalcEndTime(DateTime.Now,
|
|
|
+ new TimeConfig(data.External.TimeLimit.Value, data.External.TimeLimitUnit.Value));
|
|
|
|
|
|
if (data.FlowDirection is EFlowDirection.OrgToCenter)
|
|
|
{
|
|
|
- order.OrgToCenter(expiredTime.EndTime);
|
|
|
+ order.OrgToCenter(expiredTimeConfig.TimeText, expiredTimeConfig.Count,
|
|
|
+ expiredTimeConfig.TimeType, expiredTimeConfig.ExpiredTime);
|
|
|
}
|
|
|
else if (data.FlowDirection is EFlowDirection.CenterToOrg)
|
|
|
{
|
|
|
- order.CenterToOrg(expiredTime.EndTime);
|
|
|
+ order.CenterToOrg(expiredTimeConfig.TimeText, expiredTimeConfig.Count,
|
|
|
+ expiredTimeConfig.TimeType, expiredTimeConfig.ExpiredTime);
|
|
|
//写入质检
|
|
|
await _qualityApplication.AddQualityAsync(EQualitySource.Send, order.Id, cancellationToken);
|
|
|
}
|
|
|
|
|
|
- await _workflowDomainService.UpdateExpiredTimeAsync(workflow, expiredTime.EndTime,
|
|
|
- expiredTime.RuleStr, data.External.TimeLimit, data.External.TimeLimitUnit,
|
|
|
- order.CenterToOrgTime,
|
|
|
- cancellationToken);
|
|
|
+ await _workflowDomainService.UpdateExpiredTimeAsync(workflow,
|
|
|
+ expiredTimeConfig.ExpiredTime, expiredTimeConfig.TimeText,
|
|
|
+ expiredTimeConfig.Count, expiredTimeConfig.TimeType, cancellationToken);
|
|
|
|
|
|
expiredTimeChanged = true;
|
|
|
}
|
|
@@ -169,77 +173,71 @@ public class WorkflowNextHandler : INotificationHandler<NextStepNotify>
|
|
|
await _orderScreenRepository.UpdateAsync(screen, cancellationToken);
|
|
|
}
|
|
|
|
|
|
- if (nextTag is not null)
|
|
|
+ if (nextTag is not null && nextTag.Type == TagDefaults.TagType.Org)
|
|
|
{
|
|
|
- if (nextTag.Type == TagDefaults.TagType.Org)
|
|
|
+ switch (nextTag.Value)
|
|
|
{
|
|
|
- switch (nextTag.Value)
|
|
|
- {
|
|
|
- case TagDefaults.TagValue.Province:
|
|
|
- if (screen != null)
|
|
|
+ case TagDefaults.TagValue.Province:
|
|
|
+ if (screen != null)
|
|
|
+ {
|
|
|
+ var screenDto = _mapper.Map<OrderScreenListDto>(screen);
|
|
|
+ if (screen.Order != null && screen.Order.Source == ESource.ProvinceStraight)
|
|
|
{
|
|
|
- var screenDto = _mapper.Map<OrderScreenListDto>(screen);
|
|
|
- if (screen.Order != null && screen.Order.Source == ESource.ProvinceStraight)
|
|
|
+ var screenOrderDto = _mapper.Map<OrderDto>(screen.Order);
|
|
|
+ //推省上
|
|
|
+ //_capPublisher.Publish(EventNames.HotlineOrderScreenApply, new PublishScreenDto()
|
|
|
+ //{
|
|
|
+ // Order = screenOrderDto,
|
|
|
+ // Screen = screenDto,
|
|
|
+ // ClientGuid = ""
|
|
|
+ //});
|
|
|
+ try
|
|
|
{
|
|
|
- var screenOrderDto = _mapper.Map<OrderDto>(screen.Order);
|
|
|
- //推省上
|
|
|
- //_capPublisher.Publish(EventNames.HotlineOrderScreenApply, new PublishScreenDto()
|
|
|
- //{
|
|
|
- // Order = screenOrderDto,
|
|
|
- // Screen = screenDto,
|
|
|
- // ClientGuid = ""
|
|
|
- //});
|
|
|
- try
|
|
|
- {
|
|
|
- await _provinceService.ScreenCaseInfoSend(new PublishScreenDto()
|
|
|
- {
|
|
|
- Order = screenOrderDto,
|
|
|
- Screen = screenDto,
|
|
|
- ClientGuid = ""
|
|
|
- }, cancellationToken);
|
|
|
- }
|
|
|
- catch (Exception e)
|
|
|
+ await _provinceService.ScreenCaseInfoSend(new PublishScreenDto()
|
|
|
{
|
|
|
- _logger.LogError(
|
|
|
- "_provinceService.ScreenCaseInfoSend throw exception: {ex}", e.Message);
|
|
|
- }
|
|
|
+ Order = screenOrderDto,
|
|
|
+ Screen = screenDto,
|
|
|
+ ClientGuid = ""
|
|
|
+ }, cancellationToken);
|
|
|
+ }
|
|
|
+ catch (Exception e)
|
|
|
+ {
|
|
|
+ _logger.LogError(
|
|
|
+ "_provinceService.ScreenCaseInfoSend throw exception: {ex}", e.Message);
|
|
|
}
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- break;
|
|
|
- }
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
case WorkflowModuleConsts.OrderDelay:
|
|
|
- if (nextTag is not null)
|
|
|
+ if (nextTag is not null && nextTag.Type == TagDefaults.TagType.Org)
|
|
|
{
|
|
|
- if (nextTag.Type == TagDefaults.TagType.Org)
|
|
|
+ switch (nextTag.Value)
|
|
|
{
|
|
|
- switch (nextTag.Value)
|
|
|
- {
|
|
|
- case TagDefaults.TagValue.Province:
|
|
|
- //TODO 发起省延期审批
|
|
|
- var orderDelay = await _orderDelayRepository.Queryable().Includes(x => x.Order)
|
|
|
- .Where(x => x.Id == workflow.ExternalId).FirstAsync(cancellationToken);
|
|
|
- try
|
|
|
+ case TagDefaults.TagValue.Province:
|
|
|
+ //TODO 发起省延期审批
|
|
|
+ var orderDelay = await _orderDelayRepository.Queryable().Includes(x => x.Order)
|
|
|
+ .Where(x => x.Id == workflow.ExternalId).FirstAsync(cancellationToken);
|
|
|
+ try
|
|
|
+ {
|
|
|
+ if (orderDelay != null)
|
|
|
{
|
|
|
- if (orderDelay != null)
|
|
|
- {
|
|
|
- //推送
|
|
|
- var publishOrderDelay = _mapper.Map<PublishOrderDelayDto>(orderDelay);
|
|
|
- await _provinceService.DelayCaseInfoSend(publishOrderDelay, cancellationToken);
|
|
|
- }
|
|
|
+ //推送
|
|
|
+ var publishOrderDelay = _mapper.Map<PublishOrderDelayDto>(orderDelay);
|
|
|
+ await _provinceService.DelayCaseInfoSend(publishOrderDelay, cancellationToken);
|
|
|
}
|
|
|
- catch (Exception e)
|
|
|
- {
|
|
|
- _logger.LogError("_provinceService.DelayCaseInfoSend throw exception: {ex}",
|
|
|
- e.Message);
|
|
|
- }
|
|
|
-
|
|
|
- break;
|
|
|
- }
|
|
|
+ }
|
|
|
+ catch (Exception e)
|
|
|
+ {
|
|
|
+ _logger.LogError("_provinceService.DelayCaseInfoSend throw exception: {ex}",
|
|
|
+ e.Message);
|
|
|
+ }
|
|
|
+
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
|