|
@@ -49,6 +49,7 @@ using System.Xml.Linq;
|
|
|
using XF.Domain.Authentications;
|
|
|
using XF.Domain.Cache;
|
|
|
using XF.Domain.Constants;
|
|
|
+using XF.Domain.Entities;
|
|
|
using XF.Domain.Exceptions;
|
|
|
using XF.Domain.Repository;
|
|
|
using XF.Utility.EnumExtensions;
|
|
@@ -2778,66 +2779,14 @@ public class OrderController : BaseController
|
|
|
var twoSendBack = bool.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.TwoOrgSendBack)?.SettingValue[0]);
|
|
|
if (oneSendBack || twoSendBack)
|
|
|
{
|
|
|
- // var workflow =
|
|
|
- // await _workflowDomainService.GetWorkflowAsync(dto.WorkflowId, withSteps: true, cancellationToken: HttpContext.RequestAborted);
|
|
|
- // var currentStep = _workflowDomainService.GetUnHandleStep(workflow.Steps, _sessionContext.RequiredOrgId,
|
|
|
- // _sessionContext.RequiredUserId);
|
|
|
- //
|
|
|
- // if (workflow.FlowType is EFlowType.Review && currentStep.StepType is EStepType.Start && currentStep.IsOrigin)
|
|
|
- // throw UserFriendlyException.SameMessage("当前流程已退回到开始节点");
|
|
|
- //
|
|
|
- // var prevStep = workflow.Steps.FirstOrDefault(d => d.Id == currentStep.PrevStepId);
|
|
|
- // if (prevStep == null)
|
|
|
- // throw UserFriendlyException.SameMessage("未查询到前一节点");
|
|
|
- //
|
|
|
- // var sendBack = await _orderSendBackAuditRepository.Queryable().Where(x => x.OrderId == workflow.ExternalId && x.State == ESendBackAuditState.Apply).AnyAsync();
|
|
|
- // if (sendBack)
|
|
|
- // throw UserFriendlyException.SameMessage("当前工单已经生成退回记录");
|
|
|
- //
|
|
|
- // var order = await _orderRepository
|
|
|
- // .Queryable()
|
|
|
- // .Includes(d => d.Workflow)
|
|
|
- // .FirstAsync(d => d.Id == workflow.ExternalId);
|
|
|
- // if (order.Workflow.IsInCountersign) throw UserFriendlyException.SameMessage("工单会签中,无法进行退回!");
|
|
|
- //
|
|
|
- // //var applyOrg = _organizeRepository.Get(currentStep.AcceptorOrgId.CalcOrgLevel());
|
|
|
- // //var sendBackOrg = _organizeRepository.Get(prevStep.AcceptorOrgId.CalcOrgLevel());
|
|
|
- // if ((twoSendBack && 2.Equals(currentStep.AcceptorOrgId.CalcOrgLevel()) && 1.Equals(prevStep.AcceptorOrgId.CalcOrgLevel()) && !prevStep.AcceptorOrgId.IsCenter())
|
|
|
- // || (oneSendBack && 1.Equals(currentStep.AcceptorOrgId.CalcOrgLevel()) && prevStep.AcceptorOrgId.IsCenter() && !currentStep.AcceptorOrgId.IsCenter()))
|
|
|
- // {
|
|
|
- // var audit = new OrderSendBackAudit
|
|
|
- // {
|
|
|
- // OrderId = workflow.ExternalId,
|
|
|
- // State = ESendBackAuditState.Apply,
|
|
|
- // Content = dto.Opinion,
|
|
|
- // SendBackData = dto,
|
|
|
- // ApplyOrgId = currentStep.AcceptorOrgId,
|
|
|
- // ApplyOrgName = currentStep!.AcceptorOrgName,
|
|
|
- // SendBackOrgId = prevStep.AcceptorOrgId,
|
|
|
- // SendBackOrgName = prevStep!.AcceptorOrgName,
|
|
|
- // WorkflowOrgId = _sessionContext.RequiredOrgId,
|
|
|
- // WorkflowUserId = _sessionContext.RequiredUserId
|
|
|
- // };
|
|
|
- // await _orderSendBackAuditRepository.AddAsync(audit, HttpContext.RequestAborted);
|
|
|
- // }
|
|
|
- // //中心内部流转 不走审批流程 3级部门不走审批
|
|
|
- // else if (prevStep.AcceptorOrgId.IsCenter() && currentStep.AcceptorOrgId.IsCenter())
|
|
|
- // {
|
|
|
- // await _workflowApplication.PreviousAsync(dto, HttpContext.RequestAborted);
|
|
|
- // //发送短信TODO
|
|
|
- // }
|
|
|
- // //不进入前两个判断都是默认退
|
|
|
- // else{
|
|
|
- // await _workflowApplication.PreviousAsync(dto, HttpContext.RequestAborted);
|
|
|
- // }
|
|
|
-
|
|
|
var (currentStep, prevStep,isOrgToCenter, isSecondToFirstOrgLevel) = await _workflowApplication.GetPreviousInformationAsync(
|
|
|
dto.WorkflowId, _sessionContext.RequiredUserId, _sessionContext.RequiredOrgId, HttpContext.RequestAborted);
|
|
|
if ((oneSendBack && isOrgToCenter) || (twoSendBack && isSecondToFirstOrgLevel))
|
|
|
{
|
|
|
- var audit = new OrderSendBackAudit
|
|
|
- {
|
|
|
- OrderId = dto.OrderId,
|
|
|
+ var workflow = await _workflowDomainService.GetWorkflowAsync(dto.WorkflowId, withSteps: true, cancellationToken: HttpContext.RequestAborted);
|
|
|
+ var audit = new OrderSendBackAudit
|
|
|
+ {
|
|
|
+ OrderId = workflow.ExternalId,
|
|
|
State = ESendBackAuditState.Apply,
|
|
|
Content = dto.Opinion,
|
|
|
SendBackData = dto,
|
|
@@ -2850,7 +2799,12 @@ public class OrderController : BaseController
|
|
|
};
|
|
|
await _orderSendBackAuditRepository.AddAsync(audit, HttpContext.RequestAborted);
|
|
|
}
|
|
|
- }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ await _workflowApplication.PreviousAsync(dto, HttpContext.RequestAborted);
|
|
|
+ //发送短信TODO
|
|
|
+ }
|
|
|
+ }
|
|
|
else
|
|
|
{
|
|
|
await _workflowApplication.PreviousAsync(dto, HttpContext.RequestAborted);
|