|
@@ -2069,6 +2069,76 @@ public class OrderController : BaseController
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 工单延期修改后下一步流程
|
|
|
+ /// </summary>
|
|
|
+ [HttpPost("delay/batch_audit")]
|
|
|
+ [LogFilter("批量审批延期")]
|
|
|
+ public async Task<string> BatchAuditDelay([FromBody] BatchDelayNextFlowDto dto) {
|
|
|
+ var result = new StringBuilder();
|
|
|
+ var fail = 0;
|
|
|
+ var success = 0;
|
|
|
+ foreach (var item in dto.DelayId)
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var workflow = dto.NextWorkflow;
|
|
|
+ var delay = await _orderDelayRepository.GetAsync(item, HttpContext.RequestAborted);
|
|
|
+ workflow.WorkflowId = delay.WorkflowId;
|
|
|
+ NextStepsWithOpinionDto<NextStepOption> next = null;
|
|
|
+
|
|
|
+ try
|
|
|
+ {
|
|
|
+ next = await _workflowApplication.GetNextStepsAsync(delay.WorkflowId, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+ catch (UserFriendlyException e)
|
|
|
+ {
|
|
|
+ if (e.Message.Contains("未找到对应节点"))
|
|
|
+ {
|
|
|
+ result.Append("无权审核:" + delay.No);
|
|
|
+ fail++;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ throw;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (next == null) continue;
|
|
|
+
|
|
|
+ var isBatch = next.Steps.Where(x => x.Value == workflow.NextStepName).Any();
|
|
|
+ if (isBatch)
|
|
|
+ {
|
|
|
+ var step = next.Steps.Where(x => x.Value == workflow.NextStepName).FirstOrDefault();
|
|
|
+ workflow.NextStepCode = step.Key;
|
|
|
+ workflow.NextStepName = step.Value;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ result.Append("无权审核:" + delay.No);
|
|
|
+ fail++;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ workflow.StepId = next.StepId;
|
|
|
+ if (workflow.ReviewResult == EReviewResult.Approval) {
|
|
|
+ await _workflowDomainService.NextAsync(_sessionContext, workflow,cancellationToken: HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ var reject = workflow.Adapt<RejectDto>();
|
|
|
+ await _workflowApplication.RejectAsync(reject, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+ success++;
|
|
|
+ }
|
|
|
+ catch (UserFriendlyException e)
|
|
|
+ {
|
|
|
+ result.Append(e.Message);
|
|
|
+ fail++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return $"总共: {dto.DelayId.Length}, 成功: {success}, 失败: {fail}, 失败原因: {result.ToString()}";
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 延期查询流程办理下一步可选节点
|
|
|
/// </summary>
|