|
@@ -4709,28 +4709,9 @@ public class OrderController : BaseController
|
|
|
var specialAny = await _orderSpecialRepository.Queryable().Where(x => x.OrderId == dto.OrderId && x.State == 0)
|
|
|
.AnyAsync();
|
|
|
if (specialAny) throw UserFriendlyException.SameMessage("工单已存在待审批特提信息!");
|
|
|
+ SpecialVerify(dto);
|
|
|
|
|
|
- var screen = await _orderScreenRepository.Queryable().Where(x => x.OrderId == dto.OrderId && (int)x.Status < 2).AnyAsync();
|
|
|
- if (screen) throw UserFriendlyException.SameMessage("工单存在甄别中的信息!");
|
|
|
-
|
|
|
- if (await _orderSendBackAuditRepository.AnyAsync(x => x.OrderId == dto.OrderId && x.State == ESendBackAuditState.Apply,
|
|
|
- HttpContext.RequestAborted))
|
|
|
- {
|
|
|
- throw UserFriendlyException.SameMessage("该工单存在正在审核中的退回,不能办理");
|
|
|
- }
|
|
|
-
|
|
|
- if (_appOptions.Value.IsZiGong && string.IsNullOrEmpty(dto.Cause))
|
|
|
- {
|
|
|
- dto.Cause = dto.Reason;
|
|
|
- }
|
|
|
-
|
|
|
- var order = await _orderRepository
|
|
|
- .Queryable()
|
|
|
- .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);
|
|
|
var orgs = order.HandlerOrgs;
|
|
|
model.OrgId = orgs != null && orgs.Count > 0 ? orgs[0].Key : "";
|
|
|
model.OrgName = orgs != null && orgs.Count > 0 ? orgs[0].Value : "";
|
|
@@ -4905,11 +4886,51 @@ public class OrderController : BaseController
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 工单重办信息
|
|
|
+ /// 特提验证
|
|
|
/// </summary>
|
|
|
- /// <param name="dtos"></param>
|
|
|
- /// <returns></returns>
|
|
|
- [HttpPost("re_transact")]
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ public async void SpecialVerify(OrderSpecialAddDto dto) {
|
|
|
+ var screen = await _orderScreenRepository.Queryable().Where(x => x.OrderId == dto.OrderId && (int)x.Status < 2).ToListAsync(HttpContext.RequestAborted);
|
|
|
+ var order = await _orderRepository.Queryable().Includes(d => d.Workflow).FirstAsync(d => d.Id == dto.OrderId);
|
|
|
+ var sendBackAudit = await _orderSendBackAuditRepository.Queryable().Where(x => x.OrderId == dto.OrderId && x.State == ESendBackAuditState.Apply).ToListAsync(HttpContext.RequestAborted);
|
|
|
+ if (_appOptions.Value.IsYiBin)
|
|
|
+ {
|
|
|
+ if (screen.Any()) {
|
|
|
+ _orderScreenRepository.RemoveRangeAsync(screen,true, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (sendBackAudit.Any())
|
|
|
+ {
|
|
|
+ _orderSendBackAuditRepository.RemoveRangeAsync(sendBackAudit, true, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (order.Workflow.IsInCountersign)
|
|
|
+ {
|
|
|
+ var workflowStep = await _workflowStepRepository.Queryable().Where(x => x.Id == order.Workflow.TopCountersignStepId).FirstAsync(HttpContext.RequestAborted);
|
|
|
+ if (workflowStep != null)
|
|
|
+ {
|
|
|
+ var dto = new EndCountersignDto() { CountersignId = workflowStep.StartCountersignId };
|
|
|
+ await EndCountersign(dto);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ if (screen.Any()) throw UserFriendlyException.SameMessage("工单存在甄别中的信息!");
|
|
|
+
|
|
|
+ if (sendBackAudit.Any())
|
|
|
+ throw UserFriendlyException.SameMessage("该工单存在正在审核中的退回,不能办理");
|
|
|
+
|
|
|
+ if (order.Workflow.IsInCountersign) throw UserFriendlyException.SameMessage("工单会签中,无法进行特提!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 工单重办信息
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dtos"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost("re_transact")]
|
|
|
[LogFilter("工单重办")]
|
|
|
public async Task Add([FromBody] OrderReTransactDto dto)
|
|
|
{
|