|
@@ -5660,12 +5660,28 @@ public class OrderController : BaseController
|
|
|
//string applicantId, string applicantOrgId, string[] applicantRoleIds,
|
|
|
// ISessionContext current, CancellationToken cancellationToken);
|
|
|
sendBack.SendBackData.ExpiredTime = order.ExpiredTime;
|
|
|
- var result = await _workflowApplication.PreviousAsync(sendBack.SendBackData, sendBack.WorkflowUserId,
|
|
|
- sendBack.WorkflowOrgId, sendBack.WorkflowRoleIds.ToArray(),
|
|
|
- cancellationToken: HttpContext.RequestAborted);
|
|
|
+ //var result = await _workflowApplication.PreviousAsync(sendBack.SendBackData, sendBack.WorkflowUserId,
|
|
|
+ // sendBack.WorkflowOrgId, sendBack.WorkflowRoleIds.ToArray(),
|
|
|
+ // cancellationToken: HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ var (workflow, currentStep1, prevDefine, prevStep1, newStep, flowDirection) =
|
|
|
+ await _workflowApplication.PreviousAsync(sendBack.SendBackData,
|
|
|
+ sendBack.WorkflowUserId, sendBack.WorkflowOrgId, sendBack.WorkflowRoleIds.ToArray(),
|
|
|
+ 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);
|
|
|
+ newStep.Assign(stepAssignInfo);
|
|
|
+ },
|
|
|
+ HttpContext.RequestAborted);
|
|
|
+
|
|
|
//var flowDirection = await _workflowApplication.PreviousAsync(sendBack.SendBackData, sendBack.WorkflowUserId, HttpContext.RequestAborted);
|
|
|
- var processType = result.flowDirection == EFlowDirection.OrgToCenter ||
|
|
|
- result.flowDirection == EFlowDirection.CenterToCenter
|
|
|
+ var processType = flowDirection == EFlowDirection.OrgToCenter ||
|
|
|
+ flowDirection == EFlowDirection.CenterToCenter
|
|
|
? EProcessType.Zhiban
|
|
|
: EProcessType.Jiaoban;
|
|
|
if (sendBack.ApplyOrgId != OrgSeedData.CenterId && sendBack.SendBackOrgId == OrgSeedData.CenterId)
|
|
@@ -5674,8 +5690,8 @@ public class OrderController : BaseController
|
|
|
.Where(o => o.Id == sendBack.OrderId).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
|
|
|
//记录退回后最新的流程节点
|
|
|
- if (result.newStep != null && !string.IsNullOrEmpty(result.newStep.Id))
|
|
|
- sendBack.NewCurrentStepId = result.newStep.Id;
|
|
|
+ if (newStep != null && !string.IsNullOrEmpty(newStep.Id))
|
|
|
+ sendBack.NewCurrentStepId = newStep.Id;
|
|
|
//发送短信TODO
|
|
|
}
|
|
|
else
|
|
@@ -5739,11 +5755,27 @@ public class OrderController : BaseController
|
|
|
}
|
|
|
|
|
|
sendBack.SendBackData.ExpiredTime = order.ExpiredTime;
|
|
|
- var result = await _workflowApplication.PreviousAsync(sendBack.SendBackData,
|
|
|
- sendBack.WorkflowUserId, sendBack.WorkflowOrgId, sendBack.WorkflowRoleIds.ToArray(),
|
|
|
- cancellationToken: HttpContext.RequestAborted);
|
|
|
+ //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 = result.flowDirection == EFlowDirection.OrgToCenter || result.flowDirection == EFlowDirection.CenterToCenter
|
|
|
+
|
|
|
+ var (workflow, currentStep1, prevDefine, prevStep1, newStep, flowDirection) =
|
|
|
+ await _workflowApplication.PreviousAsync(sendBack.SendBackData,
|
|
|
+ sendBack.WorkflowUserId, sendBack.WorkflowOrgId, sendBack.WorkflowRoleIds.ToArray(),
|
|
|
+ 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);
|
|
|
+ newStep.Assign(stepAssignInfo);
|
|
|
+ },
|
|
|
+ HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ var processType = flowDirection == EFlowDirection.OrgToCenter || flowDirection == EFlowDirection.CenterToCenter
|
|
|
? EProcessType.Zhiban
|
|
|
: EProcessType.Jiaoban;
|
|
|
if (sendBack.ApplyOrgId != OrgSeedData.CenterId && sendBack.SendBackOrgId == OrgSeedData.CenterId)
|
|
@@ -5752,8 +5784,8 @@ public class OrderController : BaseController
|
|
|
.Where(o => o.Id == sendBack.OrderId).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
|
|
|
//记录退回后最新的流程节点
|
|
|
- if (result.newStep != null && !string.IsNullOrEmpty(result.newStep.Id))
|
|
|
- sendBack.NewCurrentStepId = result.newStep.Id;
|
|
|
+ if (newStep != null && !string.IsNullOrEmpty(newStep.Id))
|
|
|
+ sendBack.NewCurrentStepId = newStep.Id;
|
|
|
//发送短信TODO
|
|
|
}
|
|
|
else
|
|
@@ -6490,7 +6522,16 @@ public class OrderController : BaseController
|
|
|
var order = await _orderRepository.GetAsync(x => x.Id == special.OrderId);
|
|
|
if (special.State == 1)
|
|
|
{
|
|
|
- await _orderApplication.RecallAsync(dto, special, order, HttpContext.RequestAborted);
|
|
|
+ var (workflow, targetStepDefine, currentStep, targetStep, newStep, isOrgToCenter) =
|
|
|
+ await _orderApplication.RecallAsync(dto, special, order, HttpContext.RequestAborted);
|
|
|
+
|
|
|
+ if (string.IsNullOrEmpty(currentStep?.HandlerOrgId))
|
|
|
+ {
|
|
|
+ special.OrgId = currentStep.HandlerOrgId;
|
|
|
+ special.OrgName = currentStep.HandlerOrgName;
|
|
|
+ special.StepName = currentStep.Name;
|
|
|
+ special.StepCode = currentStep.Code;
|
|
|
+ }
|
|
|
|
|
|
if (order.Status >= EOrderStatus.Filed)
|
|
|
{
|
|
@@ -6549,12 +6590,12 @@ public class OrderController : BaseController
|
|
|
[LogFilter("批量审批工单特提")]
|
|
|
public async Task UpdateBatch([FromBody] BatchAuditOrderSpecialDto dto)
|
|
|
{
|
|
|
- foreach (string id in dto.ids)
|
|
|
+ var specials = await _orderSpecialRepository.Queryable()
|
|
|
+ .Includes(d => d.Order)
|
|
|
+ .Where(d => dto.ids.Contains(d.Id))
|
|
|
+ .ToListAsync(HttpContext.RequestAborted);
|
|
|
+ foreach (var special in specials)
|
|
|
{
|
|
|
- var special = await _orderSpecialRepository
|
|
|
- .Queryable()
|
|
|
- .Includes(d => d.Order)
|
|
|
- .FirstAsync(d => d.Id == id);
|
|
|
if (special is null) throw UserFriendlyException.SameMessage("无效特提审批信息!");
|
|
|
if (special.State != 0) throw UserFriendlyException.SameMessage("无效特提审批信息,特提审批信息错误,该信息已审核!");
|
|
|
special.State = dto.State;
|
|
@@ -6563,10 +6604,13 @@ public class OrderController : BaseController
|
|
|
special.ReplyFileJson = await _fileRepository.AddFileAsync(dto.Files, special.Id, "", HttpContext.RequestAborted);
|
|
|
else
|
|
|
special.ReplyFileJson = new List<Share.Dtos.File.FileJson>();
|
|
|
-
|
|
|
- var order = await _orderRepository.GetAsync(x => x.Id == special.OrderId);
|
|
|
+
|
|
|
+ //var order = await _orderRepository.GetAsync(x => x.Id == special.OrderId);
|
|
|
+ var order = special.Order;
|
|
|
if (special.State == 1)
|
|
|
{
|
|
|
+ #region MyRegion
|
|
|
+
|
|
|
//var recall = new RecallDto
|
|
|
//{
|
|
|
// WorkflowId = special.WorkflowId!,
|
|
@@ -6653,8 +6697,19 @@ public class OrderController : BaseController
|
|
|
// .ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
//}
|
|
|
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ var (workflow, targetStepDefine, currentStep, targetStep, newStep, isOrgToCenter) =
|
|
|
await _orderApplication.RecallAsync(dto, special, order, HttpContext.RequestAborted);
|
|
|
|
|
|
+ if (string.IsNullOrEmpty(currentStep?.HandlerOrgId))
|
|
|
+ {
|
|
|
+ special.OrgId = currentStep.HandlerOrgId;
|
|
|
+ special.OrgName = currentStep.HandlerOrgName;
|
|
|
+ special.StepName = currentStep.Name;
|
|
|
+ special.StepCode = currentStep.Code;
|
|
|
+ }
|
|
|
+
|
|
|
if (order.Status >= EOrderStatus.Filed)
|
|
|
{
|
|
|
var publish = await _orderPublishRepository.GetAsync(x => x.OrderId == special.OrderId);
|
|
@@ -6701,8 +6756,10 @@ public class OrderController : BaseController
|
|
|
.Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
}
|
|
|
|
|
|
- await _orderSpecialRepository.UpdateAsync(special, HttpContext.RequestAborted);
|
|
|
+ //await _orderSpecialRepository.UpdateAsync(special, HttpContext.RequestAborted);
|
|
|
}
|
|
|
+
|
|
|
+ await _orderSpecialRepository.UpdateRangeAsync(specials, HttpContext.RequestAborted);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|