|
@@ -1217,7 +1217,7 @@ public class OrderController : BaseController
|
|
|
[LogFilter("取消工单延期")]
|
|
|
public async Task CancelDelay([FromBody] CancelDelayDto dto)
|
|
|
{
|
|
|
- var orderDelay = await _orderDelayRepository.GetAsync(x=>x.OrderId== dto.Id && x.DelayState == EDelayState.Examining, HttpContext.RequestAborted);
|
|
|
+ var orderDelay = await _orderDelayRepository.GetAsync(x => x.OrderId == dto.Id && x.DelayState == EDelayState.Examining, HttpContext.RequestAborted);
|
|
|
if (orderDelay != null)
|
|
|
{
|
|
|
await _workflowDomainService.TerminateAsync(new TerminateDto() { WorkflowId = orderDelay.WorkflowId, Opinion = "" }, HttpContext.RequestAborted);
|
|
@@ -1228,12 +1228,12 @@ public class OrderController : BaseController
|
|
|
}
|
|
|
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 延期列表
|
|
|
- /// </summary>
|
|
|
- /// <returns></returns>
|
|
|
- //[Permission(EPermission.DelayList)]
|
|
|
- [HttpGet("delay")]
|
|
|
+ /// <summary>
|
|
|
+ /// 延期列表
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ //[Permission(EPermission.DelayList)]
|
|
|
+ [HttpGet("delay")]
|
|
|
public async Task<PagedDto<OrderDelayDto>> DelayList([FromQuery] DelayListDto dto)
|
|
|
{
|
|
|
var (total, items) = await _orderDelayRepository.Queryable(viewFilter: false)
|
|
@@ -1898,7 +1898,7 @@ public class OrderController : BaseController
|
|
|
await _mediator.Publish(new PushMessageNotify(messageDto), HttpContext.RequestAborted);
|
|
|
}
|
|
|
}
|
|
|
- catch{}
|
|
|
+ catch { }
|
|
|
}
|
|
|
|
|
|
//推省上
|
|
@@ -2306,14 +2306,26 @@ public class OrderController : BaseController
|
|
|
/// 工单办理
|
|
|
/// </summary>
|
|
|
[HttpPost("handle")]
|
|
|
- public async Task Handle([FromBody] NextWorkflowDto dto)
|
|
|
+ public async Task Handle([FromBody] OrderHandleFlowDto dto)
|
|
|
{
|
|
|
- var order = await _orderRepository.GetAsync(x => x.WorkflowId == dto.WorkflowId,HttpContext.RequestAborted);
|
|
|
- if(await _orderDelayRepository.AnyAsync(x => x.OrderId == order.Id && x.DelayState == EDelayState.Examining,HttpContext.RequestAborted))
|
|
|
+ if (await _orderDelayRepository.AnyAsync(x => x.OrderId == dto.OrderId && x.DelayState == EDelayState.Examining, HttpContext.RequestAborted))
|
|
|
{
|
|
|
throw UserFriendlyException.SameMessage("该工单存在正在审核中的延期,不能办理");
|
|
|
}
|
|
|
- await _workflowApplication.NextAsync(dto, HttpContext.RequestAborted);
|
|
|
+ var order = await _orderDomainService.GetOrderAsync(dto.OrderId, withExtension: true,
|
|
|
+ cancellationToken: HttpContext.RequestAborted);
|
|
|
+ if (string.IsNullOrEmpty(order.WorkflowId))
|
|
|
+ throw new UserFriendlyException("该工单未发起流程");
|
|
|
+
|
|
|
+ if(dto.Data is not null && !string.IsNullOrEmpty(dto.Data.Id))
|
|
|
+ {
|
|
|
+ _mapper.Map(dto.Data, order);
|
|
|
+ await _orderRepository.UpdateAsync(order, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+
|
|
|
+ var nextWorkflowDto = _mapper.Map<NextWorkflowDto>(dto.Workflow);
|
|
|
+ nextWorkflowDto.WorkflowId = order.WorkflowId;
|
|
|
+ await _workflowApplication.NextAsync(nextWorkflowDto, HttpContext.RequestAborted);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -2769,28 +2781,28 @@ public class OrderController : BaseController
|
|
|
var screen = await _orderScreenRepository.Queryable().Where(x => x.OrderId == dto.OrderId && (int)x.Status < 2).AnyAsync();
|
|
|
if (screen) throw UserFriendlyException.SameMessage("工单存在甄别中的信息!");
|
|
|
|
|
|
- var order = await _orderRepository
|
|
|
+ var order = await _orderRepository
|
|
|
.Queryable()
|
|
|
- .Includes(d=>d.Workflow)
|
|
|
- .FirstAsync(d=>d.Id == dto.OrderId);
|
|
|
- if (order.Workflow.IsInCountersign) throw UserFriendlyException.SameMessage("工单会签中,无法进行特提!");
|
|
|
+ .Includes(d => d.Workflow)
|
|
|
+ .FirstAsync(d => d.Id == dto.OrderId);
|
|
|
+ if (order.Workflow.IsInCountersign) throw UserFriendlyException.SameMessage("工单会签中,无法进行特提!");
|
|
|
|
|
|
- var model = _mapper.Map<OrderSpecial>(dto);
|
|
|
+ var model = _mapper.Map<OrderSpecial>(dto);
|
|
|
model.OrgId = _sessionContext.OrgId;
|
|
|
model.OrgName = _sessionContext.OrgName;
|
|
|
//if (!dto.Audit) model.State = 1;
|
|
|
//取消根据进入界面判断是否审批 最新按照系统配置设定
|
|
|
var audit = true;
|
|
|
- var setting = _systemSettingCacheManager.GetSetting(SettingConstants.SeatsMonitor);
|
|
|
+ var setting = _systemSettingCacheManager.GetSetting(SettingConstants.SeatsMonitor);
|
|
|
var settingStr = setting?.SettingValue;
|
|
|
- var roles = _sessionContext.Roles;
|
|
|
- foreach (var item in settingStr)
|
|
|
- {
|
|
|
- if (roles != null && roles.Contains(item)) audit = false;
|
|
|
- }
|
|
|
- if (!audit) model.State = 1;
|
|
|
-
|
|
|
- model.InitId();
|
|
|
+ var roles = _sessionContext.Roles;
|
|
|
+ foreach (var item in settingStr)
|
|
|
+ {
|
|
|
+ if (roles != null && roles.Contains(item)) audit = false;
|
|
|
+ }
|
|
|
+ if (!audit) model.State = 1;
|
|
|
+
|
|
|
+ model.InitId();
|
|
|
if (dto.Files.Any())
|
|
|
model.FileJson = await _fileRepository.AddFileAsync(dto.Files, model.Id, "", HttpContext.RequestAborted);
|
|
|
await _orderSpecialRepository.AddAsync(model, HttpContext.RequestAborted);
|