|
@@ -2265,113 +2265,114 @@ public class OrderController : BaseController
|
|
|
/// <summary>
|
|
|
/// 批量审批延期
|
|
|
/// </summary>
|
|
|
+
|
|
|
+ //public async Task<string> BatchAuditDelay([FromBody] BatchDelayNextFlowDto dto)
|
|
|
+ //{
|
|
|
+ // var result = new StringBuilder();
|
|
|
+ // var fail = 0;
|
|
|
+ // var success = 0;
|
|
|
+ // var workflow = dto.NextWorkflow;
|
|
|
+ // foreach (var item in dto.DelayId)
|
|
|
+ // {
|
|
|
+ // try
|
|
|
+ // {
|
|
|
+ // if (workflow.NextHandlers.Any() && workflow.NextHandlers.Count() == 1)
|
|
|
+ // {
|
|
|
+ // var handler = workflow.NextHandlers.FirstOrDefault();
|
|
|
+ // if (string.IsNullOrEmpty(handler.UserId))
|
|
|
+ // {
|
|
|
+ // workflow.NextHandlers = new List<StepAssignInfo>();
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+
|
|
|
+ // var delay = await _orderDelayRepository.Queryable().Includes(x => x.Order).Where(x => x.Id == item)
|
|
|
+ // .FirstAsync(HttpContext.RequestAborted);
|
|
|
+ // workflow.WorkflowId = delay.WorkflowId;
|
|
|
+ // var workflowEntuty = await _workflowDomainService.GetWorkflowAsync(workflow.WorkflowId, withDefine: true, withSteps: true,
|
|
|
+ // cancellationToken: HttpContext.RequestAborted);
|
|
|
+ // var currentStep = workflowEntuty.Steps.FirstOrDefault(d =>
|
|
|
+ // d.Status == EWorkflowStepStatus.WaitForAccept || d.Status == EWorkflowStepStatus.WaitForHandle);
|
|
|
+
|
|
|
+ // 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;
|
|
|
+
|
|
|
+ // if (!delay.Order.IsProvince)
|
|
|
+ // {
|
|
|
+ // if (next.Steps.Any(x => x.Value == "省审批"))
|
|
|
+ // {
|
|
|
+ // next.Steps.Remove(next.Steps.First(x => x.Value == "省审批"));
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+
|
|
|
+ // if (!_sessionContext.OrgIsCenter && currentStep.Name != "中心初审")
|
|
|
+ // {
|
|
|
+ // if (next.Steps.Any(x => x.Value == "中心终审"))
|
|
|
+ // {
|
|
|
+ // next.Steps.Remove(next.Steps.First(x => x.Value == "中心终审"));
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+
|
|
|
+ // workflow.StepId = next.StepId;
|
|
|
+ // workflow.ReviewResult = dto.IsPass ? EReviewResult.Approval : EReviewResult.Failed;
|
|
|
+
|
|
|
+ // if (workflow.ReviewResult == EReviewResult.Approval)
|
|
|
+ // {
|
|
|
+ // 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;
|
|
|
+ // }
|
|
|
+
|
|
|
+ // await _workflowDomainService.NextAsync(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()}";
|
|
|
+ //}
|
|
|
+
|
|
|
[HttpPost("delay/batch_audit")]
|
|
|
[LogFilter("批量审批延期")]
|
|
|
[LogFilterAlpha("延期审核")]
|
|
|
public async Task<string> BatchAuditDelay([FromBody] BatchDelayNextFlowDto dto)
|
|
|
- {
|
|
|
- var result = new StringBuilder();
|
|
|
- var fail = 0;
|
|
|
- var success = 0;
|
|
|
- var workflow = dto.NextWorkflow;
|
|
|
- foreach (var item in dto.DelayId)
|
|
|
- {
|
|
|
- try
|
|
|
- {
|
|
|
- if (workflow.NextHandlers.Any() && workflow.NextHandlers.Count() == 1)
|
|
|
- {
|
|
|
- var handler = workflow.NextHandlers.FirstOrDefault();
|
|
|
- if (string.IsNullOrEmpty(handler.UserId))
|
|
|
- {
|
|
|
- workflow.NextHandlers = new List<StepAssignInfo>();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- var delay = await _orderDelayRepository.Queryable().Includes(x => x.Order).Where(x => x.Id == item)
|
|
|
- .FirstAsync(HttpContext.RequestAborted);
|
|
|
- workflow.WorkflowId = delay.WorkflowId;
|
|
|
- var workflowEntuty = await _workflowDomainService.GetWorkflowAsync(workflow.WorkflowId, withDefine: true, withSteps: true,
|
|
|
- cancellationToken: HttpContext.RequestAborted);
|
|
|
- var currentStep = workflowEntuty.Steps.FirstOrDefault(d =>
|
|
|
- d.Status == EWorkflowStepStatus.WaitForAccept || d.Status == EWorkflowStepStatus.WaitForHandle);
|
|
|
-
|
|
|
- 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;
|
|
|
-
|
|
|
- if (!delay.Order.IsProvince)
|
|
|
- {
|
|
|
- if (next.Steps.Any(x => x.Value == "省审批"))
|
|
|
- {
|
|
|
- next.Steps.Remove(next.Steps.First(x => x.Value == "省审批"));
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (!_sessionContext.OrgIsCenter && currentStep.Name != "中心初审")
|
|
|
- {
|
|
|
- if (next.Steps.Any(x => x.Value == "中心终审"))
|
|
|
- {
|
|
|
- next.Steps.Remove(next.Steps.First(x => x.Value == "中心终审"));
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- workflow.StepId = next.StepId;
|
|
|
- workflow.ReviewResult = dto.IsPass ? EReviewResult.Approval : EReviewResult.Failed;
|
|
|
-
|
|
|
- if (workflow.ReviewResult == EReviewResult.Approval)
|
|
|
- {
|
|
|
- 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;
|
|
|
- }
|
|
|
-
|
|
|
- await _workflowDomainService.NextAsync(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()}";
|
|
|
- }
|
|
|
-
|
|
|
- public async Task<string> BatchAuditDelay1([FromBody] BatchDelayNextFlowDto dto)
|
|
|
{
|
|
|
var result = new StringBuilder();
|
|
|
var fail = 0;
|