|
@@ -5648,12 +5648,11 @@ public class OrderController : BaseController
|
|
|
[HttpGet("migration/{orderId}")]
|
|
|
public async Task<GetOrderMigrationDto> Migration(string orderId)
|
|
|
{
|
|
|
+ var order = await _orderRepository.GetAsync(orderId, HttpContext.RequestAborted);
|
|
|
var steps = await _workflowStepRepository.Queryable()
|
|
|
.Where(d => d.ExternalId == orderId && d.Status != EWorkflowStepStatus.Handled)
|
|
|
.ToListAsync(HttpContext.RequestAborted);
|
|
|
|
|
|
- if (!steps.Any())
|
|
|
- throw new UserFriendlyException("未查询到待办理节点");
|
|
|
if (steps.Count > 1)
|
|
|
throw new UserFriendlyException("多个待办理节点暂不支持平移");
|
|
|
var step = steps.First();
|
|
@@ -5663,7 +5662,13 @@ public class OrderController : BaseController
|
|
|
var setting = step.BusinessType is EBusinessType.Center
|
|
|
? _systemSettingCacheManager.GetSetting(SettingConstants.RoleZuoXi)
|
|
|
: _systemSettingCacheManager.GetSetting(SettingConstants.RolePaiDan);
|
|
|
- var roles = setting?.SettingValue.ToList();
|
|
|
+ //未受理 已签到工单处理
|
|
|
+ if (string.IsNullOrEmpty(order.WorkflowId))
|
|
|
+ {
|
|
|
+ step = new WorkflowStep();
|
|
|
+ setting = _systemSettingCacheManager.GetSetting(SettingConstants.RoleZuoXi);
|
|
|
+ }
|
|
|
+ var roles = setting?.SettingValue.ToList();
|
|
|
var users = await _userRepository.Queryable()
|
|
|
.Includes(d => d.Organization)
|
|
|
.Includes(d => d.Roles)
|
|
@@ -5672,7 +5677,8 @@ public class OrderController : BaseController
|
|
|
return new GetOrderMigrationDto
|
|
|
{
|
|
|
StepId = step.Id,
|
|
|
- Handlers = users.Select(d => new OrderMigrationHandler
|
|
|
+ OrderId = orderId,
|
|
|
+ Handlers = users.Select(d => new OrderMigrationHandler
|
|
|
{
|
|
|
UserId = d.Id,
|
|
|
Username = d.Name,
|
|
@@ -5683,5 +5689,29 @@ public class OrderController : BaseController
|
|
|
};
|
|
|
}
|
|
|
|
|
|
- #endregion
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 工单平移
|
|
|
+ /// </summary>
|
|
|
+ [HttpPost("change-handler")]
|
|
|
+ public async Task ChangeHandler([FromBody] ChangeHandlerDto dto)
|
|
|
+ {
|
|
|
+ if (string.IsNullOrEmpty(dto.StepId))
|
|
|
+ {
|
|
|
+ await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { SignerId = dto.Handler.UserId, SignerName = dto.Handler.Username })
|
|
|
+ .Where(o => o.Id == dto.OrderId).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ var step = await _workflowStepRepository.Queryable()
|
|
|
+ .Includes(d => d.WorkflowTrace)
|
|
|
+ .FirstAsync(d => d.Id == dto.StepId, HttpContext.RequestAborted);
|
|
|
+ if (step is null)
|
|
|
+ throw new UserFriendlyException("无效节点编号");
|
|
|
+ await _workflowDomainService.ChangeHandlerBatchAsync(new List<(string userId, string username, string orgId, string orgName, ICollection<WorkflowStep> steps)>
|
|
|
+ {
|
|
|
+ new(dto.Handler.UserId,dto.Handler.Username,dto.Handler.OrgId,dto.Handler.OrgName, new List<WorkflowStep>{step})
|
|
|
+ }, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
}
|