|
@@ -4480,6 +4480,7 @@ public class OrderController : BaseController
|
|
|
CenterToOrgHandlerName = currentStep.HandlerName
|
|
|
}).Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
}
|
|
|
+
|
|
|
break;
|
|
|
case EOrderAssignMode.CrossLevel: // 跨级
|
|
|
if (!orderHandleFlowDto.CrossSteps.Any())
|
|
@@ -5250,17 +5251,17 @@ public class OrderController : BaseController
|
|
|
{
|
|
|
var oneSendBack = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.OneOrgSendBack)?.SettingValue[0]);
|
|
|
var twoSendBack = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.TwoOrgSendBack)?.SettingValue[0]);
|
|
|
- var workflow = await _workflowDomainService.GetWorkflowAsync(dto.WorkflowId, withSteps: true, cancellationToken: HttpContext.RequestAborted);
|
|
|
+ //var workflow = await _workflowDomainService.GetWorkflowAsync(dto.WorkflowId, withSteps: true, cancellationToken: HttpContext.RequestAborted);
|
|
|
var order = await _orderRepository
|
|
|
.Queryable()
|
|
|
.Includes(d => d.Workflow)
|
|
|
- .FirstAsync(d => d.Id == workflow.ExternalId);
|
|
|
+ .FirstAsync(d => d.Id == dto.OrderId);
|
|
|
dto.ExpiredTime = order.ExpiredTime;
|
|
|
var (currentStep, prevStep, isOrgToCenter, isSecondToFirstOrgLevel) = await _workflowApplication.GetPreviousInformationAsync(
|
|
|
dto.WorkflowId, _sessionContext.RequiredUserId, _sessionContext.RequiredOrgId, _sessionContext.Roles, HttpContext.RequestAborted);
|
|
|
var audit = new OrderSendBackAudit
|
|
|
{
|
|
|
- OrderId = workflow.ExternalId,
|
|
|
+ OrderId = dto.OrderId,
|
|
|
State = ESendBackAuditState.Apply,
|
|
|
Content = dto.Opinion,
|
|
|
SendBackData = dto,
|
|
@@ -5301,7 +5302,7 @@ public class OrderController : BaseController
|
|
|
if (oneSendBack || twoSendBack)
|
|
|
{
|
|
|
var sendBack = await _orderSendBackAuditRepository.Queryable()
|
|
|
- .Where(x => x.OrderId == workflow.ExternalId && x.State == ESendBackAuditState.Apply).AnyAsync();
|
|
|
+ .Where(x => x.OrderId == dto.OrderId && x.State == ESendBackAuditState.Apply).AnyAsync();
|
|
|
if (sendBack)
|
|
|
throw UserFriendlyException.SameMessage("当前工单已经生成退回记录");
|
|
|
|
|
@@ -5315,7 +5316,7 @@ public class OrderController : BaseController
|
|
|
throw UserFriendlyException.SameMessage("工单截至退回时间【" + order.SendBackAuditEndTime.Value.ToString("yyyy-MM-dd HH:mm:ss") +
|
|
|
"】,无法进行退回!");
|
|
|
var sendBackAgain = await _orderSendBackAuditRepository.Queryable()
|
|
|
- .Where(x => x.OrderId == workflow.ExternalId && x.IsReturnAgain == false).AnyAsync();
|
|
|
+ .Where(x => x.OrderId == dto.OrderId && x.IsReturnAgain == false).AnyAsync();
|
|
|
if (sendBackAgain)
|
|
|
throw UserFriendlyException.SameMessage("工单已不允许退回!");
|
|
|
}
|
|
@@ -5337,24 +5338,27 @@ public class OrderController : BaseController
|
|
|
// .Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
// }
|
|
|
|
|
|
- var flowDirection = await _workflowApplication.PreviousAsync(dto,
|
|
|
- async (workflow1, prevStepDefine, prevStep1, newStep) =>
|
|
|
- {
|
|
|
- var stepAssignInfo =
|
|
|
- await _orderApplication.GetOrderPreviousAssignInfoAsync(workflow1, prevStepDefine, prevStep1, HttpContext.RequestAborted);
|
|
|
- if (stepAssignInfo is null) return;
|
|
|
- var validator = new StepAssignInfoValidator();
|
|
|
- await validator.ValidateAndThrowAsync(stepAssignInfo);
|
|
|
- if (prevStep1.BusinessType == EBusinessType.Send)
|
|
|
+ var (workflow, currentStep1, prevDefine, prevStep1, newStep, flowDirection) =
|
|
|
+ await _workflowApplication.PreviousAsync(dto,
|
|
|
+ async (workflow1, prevStepDefine, prevStep1, newStep) =>
|
|
|
{
|
|
|
- await _orderRepository.Updateable().SetColumns(o => new Order()
|
|
|
- { CenterToOrgHandlerId = stepAssignInfo.UserId, CenterToOrgHandlerName = stepAssignInfo.Username })
|
|
|
- .Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
- }
|
|
|
+ var stepAssignInfo =
|
|
|
+ await _orderApplication.GetOrderPreviousAssignInfoAsync(workflow1, prevStepDefine, prevStep1,
|
|
|
+ HttpContext.RequestAborted);
|
|
|
+ if (stepAssignInfo is null) return;
|
|
|
+ var validator = new StepAssignInfoValidator();
|
|
|
+ await validator.ValidateAndThrowAsync(stepAssignInfo);
|
|
|
+ newStep.Assign(stepAssignInfo);
|
|
|
+ },
|
|
|
+ HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ if (prevStep.BusinessType == EBusinessType.Send)
|
|
|
+ {
|
|
|
+ await _orderRepository.Updateable().SetColumns(o => new Order()
|
|
|
+ { CenterToOrgHandlerId = newStep.HandlerId, CenterToOrgHandlerName = newStep.HandlerName })
|
|
|
+ .Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
|
|
|
- newStep.Assign(stepAssignInfo);
|
|
|
- },
|
|
|
- HttpContext.RequestAborted);
|
|
|
var processType = flowDirection == EFlowDirection.OrgToCenter || flowDirection == EFlowDirection.CenterToCenter
|
|
|
? EProcessType.Zhiban
|
|
|
: EProcessType.Jiaoban;
|
|
@@ -5377,24 +5381,26 @@ public class OrderController : BaseController
|
|
|
// .Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
// }
|
|
|
|
|
|
- var flowDirection = await _workflowApplication.PreviousAsync(dto,
|
|
|
- async (workflow1, prevStepDefine, prevStep1, newStep) =>
|
|
|
- {
|
|
|
- var stepAssignInfo =
|
|
|
- await _orderApplication.GetOrderPreviousAssignInfoAsync(workflow1, prevStepDefine, prevStep1, HttpContext.RequestAborted);
|
|
|
- if (stepAssignInfo is null) return;
|
|
|
- var validator = new StepAssignInfoValidator();
|
|
|
- await validator.ValidateAndThrowAsync(stepAssignInfo);
|
|
|
- if (prevStep1.BusinessType == EBusinessType.Send)
|
|
|
+ var (workflow, currentStep1, prevDefine, prevStep1, newStep, flowDirection) =
|
|
|
+ await _workflowApplication.PreviousAsync(dto,
|
|
|
+ async (workflow1, prevStepDefine, prevStep1, newStep) =>
|
|
|
{
|
|
|
- await _orderRepository.Updateable().SetColumns(o => new Order()
|
|
|
- { CenterToOrgHandlerId = stepAssignInfo.UserId, CenterToOrgHandlerName = stepAssignInfo.Username })
|
|
|
- .Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
- }
|
|
|
+ var stepAssignInfo =
|
|
|
+ await _orderApplication.GetOrderPreviousAssignInfoAsync(workflow1, prevStepDefine, prevStep1, HttpContext.RequestAborted);
|
|
|
+ if (stepAssignInfo is null) return;
|
|
|
+ var validator = new StepAssignInfoValidator();
|
|
|
+ await validator.ValidateAndThrowAsync(stepAssignInfo);
|
|
|
+ newStep.Assign(stepAssignInfo);
|
|
|
+ },
|
|
|
+ HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ if (prevStep.BusinessType == EBusinessType.Send)
|
|
|
+ {
|
|
|
+ await _orderRepository.Updateable().SetColumns(o => new Order()
|
|
|
+ { CenterToOrgHandlerId = newStep.HandlerId, CenterToOrgHandlerName = newStep.HandlerName })
|
|
|
+ .Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
|
|
|
- newStep.Assign(stepAssignInfo);
|
|
|
- },
|
|
|
- HttpContext.RequestAborted);
|
|
|
var processType = flowDirection == EFlowDirection.OrgToCenter || flowDirection == EFlowDirection.CenterToCenter
|
|
|
? EProcessType.Zhiban
|
|
|
: EProcessType.Jiaoban;
|
|
@@ -5463,12 +5469,12 @@ public class OrderController : BaseController
|
|
|
//string applicantId, string applicantOrgId, string[] applicantRoleIds,
|
|
|
// ISessionContext current, CancellationToken cancellationToken);
|
|
|
sendBack.SendBackData.ExpiredTime = order.ExpiredTime;
|
|
|
- var flowDirection = await _workflowApplication.PreviousAsync(sendBack.SendBackData, sendBack.WorkflowUserId,
|
|
|
+ var result = await _workflowApplication.PreviousAsync(sendBack.SendBackData, sendBack.WorkflowUserId,
|
|
|
sendBack.WorkflowOrgId, sendBack.WorkflowRoleIds.ToArray(),
|
|
|
cancellationToken: HttpContext.RequestAborted);
|
|
|
//var flowDirection = await _workflowApplication.PreviousAsync(sendBack.SendBackData, sendBack.WorkflowUserId, HttpContext.RequestAborted);
|
|
|
- var processType = flowDirection == EFlowDirection.OrgToCenter ||
|
|
|
- flowDirection == EFlowDirection.CenterToCenter
|
|
|
+ var processType = result.flowDirection == EFlowDirection.OrgToCenter ||
|
|
|
+ result.flowDirection == EFlowDirection.CenterToCenter
|
|
|
? EProcessType.Zhiban
|
|
|
: EProcessType.Jiaoban;
|
|
|
if (sendBack.ApplyOrgId != OrgSeedData.CenterId && sendBack.SendBackOrgId == OrgSeedData.CenterId)
|
|
@@ -5538,11 +5544,11 @@ public class OrderController : BaseController
|
|
|
}
|
|
|
|
|
|
sendBack.SendBackData.ExpiredTime = order.ExpiredTime;
|
|
|
- var flowDirection = await _workflowApplication.PreviousAsync(sendBack.SendBackData,
|
|
|
+ var result = await _workflowApplication.PreviousAsync(sendBack.SendBackData,
|
|
|
sendBack.WorkflowUserId, sendBack.WorkflowOrgId, sendBack.WorkflowRoleIds.ToArray(),
|
|
|
cancellationToken: HttpContext.RequestAborted);
|
|
|
//var flowDirection = await _workflowApplication.PreviousAsync(sendBack.SendBackData, sendBack.WorkflowUserId, HttpContext.RequestAborted);
|
|
|
- var processType = flowDirection == EFlowDirection.OrgToCenter || flowDirection == EFlowDirection.CenterToCenter
|
|
|
+ var processType = result.flowDirection == EFlowDirection.OrgToCenter || result.flowDirection == EFlowDirection.CenterToCenter
|
|
|
? EProcessType.Zhiban
|
|
|
: EProcessType.Jiaoban;
|
|
|
if (sendBack.ApplyOrgId != OrgSeedData.CenterId && sendBack.SendBackOrgId == OrgSeedData.CenterId)
|
|
@@ -5998,7 +6004,7 @@ public class OrderController : BaseController
|
|
|
order.NearlyExpiredTimeOne = expiredTime.NearlyExpiredTimeOne;
|
|
|
order.ProcessType = processType;
|
|
|
order.Status = EOrderStatus.Special;
|
|
|
-
|
|
|
+
|
|
|
var orderDto = _mapper.Map<OrderDto>(order);
|
|
|
await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderExpiredTimeUpdate, orderDto,
|
|
|
cancellationToken: HttpContext.RequestAborted);
|
|
@@ -6086,7 +6092,7 @@ public class OrderController : BaseController
|
|
|
cancellationToken: HttpContext.RequestAborted);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
await _orderRepository.Updateable(order)
|
|
|
.UpdateColumns(d => new
|
|
|
{
|
|
@@ -6472,7 +6478,7 @@ public class OrderController : BaseController
|
|
|
async (workflow, currentStep, targetStepDefine, targetStep, targetStepNew) =>
|
|
|
{
|
|
|
var stepAssignInfo = recall.NextHandlers.FirstOrDefault()
|
|
|
- ?? await _orderApplication.GetOrderRecallAssignInfoAsync(workflow, targetStepDefine, targetStep,
|
|
|
+ ?? await _orderApplication.GetOrderRecallAssignInfoAsync(workflow, targetStepDefine, targetStep,
|
|
|
recall, HttpContext.RequestAborted);
|
|
|
if (stepAssignInfo is null) return;
|
|
|
var validator = new StepAssignInfoValidator();
|
|
@@ -6660,7 +6666,7 @@ public class OrderController : BaseController
|
|
|
async (workflow, currentStep, targetStepDefine, targetStep, targetStepNew) =>
|
|
|
{
|
|
|
var stepAssignInfo = recall.NextHandlers.FirstOrDefault()
|
|
|
- ?? await _orderApplication.GetOrderRecallAssignInfoAsync(workflow, targetStepDefine, targetStep,
|
|
|
+ ?? await _orderApplication.GetOrderRecallAssignInfoAsync(workflow, targetStepDefine, targetStep,
|
|
|
recall, HttpContext.RequestAborted);
|
|
|
if (stepAssignInfo is null) return;
|
|
|
var validator = new StepAssignInfoValidator();
|