|
@@ -1648,9 +1648,9 @@ public class OrderController : BaseController
|
|
|
.Includes(x => x.OrderVisit)
|
|
|
.Includes(x => x.OrderVisit, y => y.Order)
|
|
|
.Includes(x => x.OrderVisit, y => y.Employee)
|
|
|
- .LeftJoin<OrderScreen>((x, s) => x.Id == s.VisitDetailId && s.IsDeleted == false)
|
|
|
- //&& s.Status < EScreenStatus.End
|
|
|
- .Where((x, s) => s.Id == null)
|
|
|
+ .LeftJoin<OrderScreen>((x, s) => x.Id == s.VisitDetailId && s.IsDeleted == false)
|
|
|
+ //&& s.Status < EScreenStatus.End
|
|
|
+ .Where((x, s) => s.Id == null)
|
|
|
.WhereIF(dto.IsHomePage.HasValue && dto.IsHomePage == true,
|
|
|
x => x.OrderVisit.VisitTime < dto.CreationTimeEnd && x.OrderVisit.VisitTime > dto.CreationTimeStart)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.No), x => x.OrderVisit.Order!.No!.Contains(dto.No!))
|
|
@@ -1779,11 +1779,11 @@ public class OrderController : BaseController
|
|
|
var endTime = DateTime.Now;
|
|
|
if (int.Parse(setting?.SettingValue[0]) > 0)
|
|
|
{
|
|
|
- endTime = _timeLimitDomainService
|
|
|
- .CalcEndTime(visit.VisitTime.Value, ETimeType.WorkDay, int.Parse(setting?.SettingValue[0]),0,0).EndTime;
|
|
|
- if (DateTime.Now > endTime)
|
|
|
- throw UserFriendlyException.SameMessage("甄别申请时限已超过系统预定设置,不能申请");
|
|
|
- }
|
|
|
+ endTime = _timeLimitDomainService
|
|
|
+ .CalcEndTime(visit.VisitTime.Value, ETimeType.WorkDay, int.Parse(setting?.SettingValue[0]), 0, 0).EndTime;
|
|
|
+ if (DateTime.Now > endTime)
|
|
|
+ throw UserFriendlyException.SameMessage("甄别申请时限已超过系统预定设置,不能申请");
|
|
|
+ }
|
|
|
|
|
|
var model = _mapper.Map<OrderScreen>(dto.Data);
|
|
|
model.Status = EScreenStatus.Apply;
|
|
@@ -1849,28 +1849,29 @@ public class OrderController : BaseController
|
|
|
/// 甄别流程退回
|
|
|
/// </summary>
|
|
|
[HttpPost("screen/previous")]
|
|
|
- public async Task ScreenPrevious([FromBody] PreviousWorkflowDto dto)
|
|
|
+ public async Task ScreenPrevious([FromBody] PreviousWorkflowDto dto)
|
|
|
{
|
|
|
- var workflow = await _workflowDomainService.GetWorkflowAsync(dto.WorkflowId, withSteps: true,
|
|
|
- cancellationToken: HttpContext.RequestAborted);
|
|
|
+ var workflow = await _workflowDomainService.GetWorkflowAsync(dto.WorkflowId, withSteps: true,
|
|
|
+ cancellationToken: HttpContext.RequestAborted);
|
|
|
if (workflow.Steps.Count > 2)
|
|
|
{
|
|
|
await _workflowApplication.PreviousAsync(dto, HttpContext.RequestAborted);
|
|
|
}
|
|
|
- else {
|
|
|
+ else
|
|
|
+ {
|
|
|
TerminateDto terDto = new TerminateDto
|
|
|
{
|
|
|
WorkflowId = dto.WorkflowId,
|
|
|
Opinion = "退回申请人"
|
|
|
};
|
|
|
- await _workflowDomainService.TerminateAsync(terDto, HttpContext.RequestAborted);
|
|
|
- }
|
|
|
- }
|
|
|
- /// <summary>
|
|
|
- /// 查询工单甄别流程开启参数
|
|
|
- /// </summary>
|
|
|
- /// <returns></returns>
|
|
|
- [HttpGet("screen/startflow")]
|
|
|
+ await _workflowDomainService.TerminateAsync(terDto, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 查询工单甄别流程开启参数
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("screen/startflow")]
|
|
|
public async Task<NextStepsDto> GetScreenFlowStartOptionsAsync()
|
|
|
{
|
|
|
//return await _workflowApplication.GetStartOptionsAsync(WorkflowModuleConsts.OrderScreen,
|
|
@@ -2548,15 +2549,15 @@ public class OrderController : BaseController
|
|
|
{
|
|
|
canInsteadHandle = false;
|
|
|
};
|
|
|
- }
|
|
|
- if (canInsteadHandle)
|
|
|
- {
|
|
|
- var unhandleSteps =
|
|
|
- await _workflowDomainService.GetUnhandleStepsByOthersAsync(order.WorkflowId, HttpContext.RequestAborted);
|
|
|
- // 会签多节点 不允许班长代办 归档没有待办节点
|
|
|
- if (unhandleSteps.Count != 1)
|
|
|
- canInsteadHandle = false;
|
|
|
- if (isEnable < 3 && unhandleSteps.Count == 1)
|
|
|
+ }
|
|
|
+ if (canInsteadHandle)
|
|
|
+ {
|
|
|
+ var unhandleSteps =
|
|
|
+ await _workflowDomainService.GetUnhandleStepsByOthersAsync(order.WorkflowId, HttpContext.RequestAborted);
|
|
|
+ // 会签多节点 不允许班长代办 归档没有待办节点
|
|
|
+ if (unhandleSteps.Count != 1)
|
|
|
+ canInsteadHandle = false;
|
|
|
+ if (isEnable < 3 && unhandleSteps.Count == 1)
|
|
|
{
|
|
|
var type = isEnable - 1;
|
|
|
var step = unhandleSteps.FirstOrDefault(d => d.BusinessType == (EBusinessType)type);
|
|
@@ -2699,9 +2700,9 @@ public class OrderController : BaseController
|
|
|
dto.OrderRemarks = remarks;
|
|
|
if (order.Status == EOrderStatus.SendBack || order.Status == EOrderStatus.SendBackAudit)
|
|
|
{
|
|
|
- var sendBack = await _orderSendBackAuditRepository.Queryable().Where(x => x.OrderId == dto.Id).OrderByDescending(x => x.CreationTime).FirstAsync();
|
|
|
- dto.SendBackOpinion = sendBack is { Id: not null } && !string.IsNullOrEmpty(sendBack.Content) ? sendBack.Content : string.Empty;
|
|
|
- }
|
|
|
+ var sendBack = await _orderSendBackAuditRepository.Queryable().Where(x => x.OrderId == dto.Id).OrderByDescending(x => x.CreationTime).FirstAsync();
|
|
|
+ dto.SendBackOpinion = sendBack is { Id: not null } && !string.IsNullOrEmpty(sendBack.Content) ? sendBack.Content : string.Empty;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return dto;
|
|
@@ -3172,7 +3173,7 @@ public class OrderController : BaseController
|
|
|
if (order is null)
|
|
|
throw new UserFriendlyException($"工单未开启流程, workflowId: {workflow.Id}");
|
|
|
order.UpdateHandlingStatus(workflow.IsInCountersign);
|
|
|
- _mapper.Map(workflow, order);
|
|
|
+ _mapper.Map(workflow, order);
|
|
|
await _orderRepository.UpdateAsync(order, HttpContext.RequestAborted);
|
|
|
}
|
|
|
|
|
@@ -3328,7 +3329,7 @@ public class OrderController : BaseController
|
|
|
var (total, items) = await _orderRepository
|
|
|
.Queryable(hasHandled: isHandled)
|
|
|
.Includes(d => d.OrderSpecials)
|
|
|
- .Where(d=>d.Status != EOrderStatus.WaitForAccept && d.Status != EOrderStatus.BackToUnAccept && d.Status != EOrderStatus.SpecialToUnAccept)
|
|
|
+ .Where(d => d.Status != EOrderStatus.WaitForAccept && d.Status != EOrderStatus.BackToUnAccept && d.Status != EOrderStatus.SpecialToUnAccept)
|
|
|
.WhereIF(dto.IsProvince.HasValue, d => d.IsProvince == dto.IsProvince)
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.StartsWith(dto.Keyword))
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.No), d => d.No == dto.No)
|
|
@@ -3716,8 +3717,8 @@ public class OrderController : BaseController
|
|
|
};
|
|
|
await _orderSendBackAuditRepository.AddAsync(audit, HttpContext.RequestAborted);
|
|
|
await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { Status = EOrderStatus.SendBackAudit })
|
|
|
- .Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
- }
|
|
|
+ .Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
else
|
|
|
{
|
|
|
var flowDirection = await _workflowApplication.PreviousAsync(dto, HttpContext.RequestAborted);
|
|
@@ -3817,7 +3818,7 @@ public class OrderController : BaseController
|
|
|
var processType = flowDirection == EFlowDirection.OrgToCenter || flowDirection == EFlowDirection.CenterToCenter
|
|
|
? EProcessType.Zhiban
|
|
|
: EProcessType.Jiaoban;
|
|
|
- await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { ProcessType = processType})
|
|
|
+ await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { ProcessType = processType })
|
|
|
.Where(o => o.Id == sendBack.OrderId).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
//发送短信TODO
|
|
|
}
|
|
@@ -4164,7 +4165,7 @@ public class OrderController : BaseController
|
|
|
//var expiredTime = _timeLimitDomainService.CalcEndTime(DateTime.Now,
|
|
|
// ETimeType.WorkDay,
|
|
|
// dto.TimeLimit.Value, order.AcceptTypeCode);
|
|
|
- await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { ExpiredTime = expiredTime.ExpiredTime, NearlyExpiredTime = expiredTime.NearlyExpiredTime, NearlyExpiredTimeOne = expiredTime.NearlyExpiredTimeOne, ProcessType = processType,Status = EOrderStatus.Special })
|
|
|
+ await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { ExpiredTime = expiredTime.ExpiredTime, NearlyExpiredTime = expiredTime.NearlyExpiredTime, NearlyExpiredTimeOne = expiredTime.NearlyExpiredTimeOne, ProcessType = processType, Status = EOrderStatus.Special })
|
|
|
.Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
var orderDto = _mapper.Map<OrderDto>(order);
|
|
|
await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderExpiredTimeUpdate, orderDto,
|
|
@@ -4214,10 +4215,11 @@ public class OrderController : BaseController
|
|
|
//}
|
|
|
}
|
|
|
}
|
|
|
- else {
|
|
|
- await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { Status = EOrderStatus.SpecialAudit })
|
|
|
- .Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
- }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { Status = EOrderStatus.SpecialAudit })
|
|
|
+ .Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -4313,7 +4315,7 @@ public class OrderController : BaseController
|
|
|
? EProcessType.Zhiban
|
|
|
: EProcessType.Jiaoban;
|
|
|
await _workflowApplication.RecallAsync(recall, endTime, order.Status >= EOrderStatus.Filed, HttpContext.RequestAborted);
|
|
|
- var publish = await _orderPublishRepository.GetAsync(x => x.OrderId == dto.OrderId);
|
|
|
+ var publish = await _orderPublishRepository.GetAsync(x => x.OrderId == dto.OrderId);
|
|
|
if (publish != null)
|
|
|
{
|
|
|
var publishHistory = _mapper.Map<OrderPublishHistory>(publish);
|
|
@@ -4329,7 +4331,7 @@ public class OrderController : BaseController
|
|
|
}
|
|
|
|
|
|
var reTransactNum = order.ReTransactNum.HasValue ? order.ReTransactNum.Value + 1 : 1;
|
|
|
- await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { ProcessType = processType,ReTransactNum = reTransactNum, Status = EOrderStatus.BackToUnAccept }).Where(o => o.Id == order.Id)
|
|
|
+ await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { ProcessType = processType, ReTransactNum = reTransactNum, Status = EOrderStatus.BackToUnAccept }).Where(o => o.Id == order.Id)
|
|
|
.ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
|
|
|
var visit = await _orderVisitRepository.GetAsync(x => x.OrderId == dto.OrderId && x.VisitState != EVisitState.None);
|
|
@@ -4387,7 +4389,7 @@ public class OrderController : BaseController
|
|
|
var processType = special.FlowDirection is EFlowDirection.OrgToCenter or EFlowDirection.CenterToCenter or EFlowDirection.FiledToCenter
|
|
|
? EProcessType.Zhiban
|
|
|
: EProcessType.Jiaoban;
|
|
|
- await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { ExpiredTime = expiredTime.ExpiredTime, NearlyExpiredTime = expiredTime.NearlyExpiredTime, NearlyExpiredTimeOne = expiredTime.NearlyExpiredTimeOne, ProcessType = processType,Status = EOrderStatus.Special })
|
|
|
+ await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { ExpiredTime = expiredTime.ExpiredTime, NearlyExpiredTime = expiredTime.NearlyExpiredTime, NearlyExpiredTimeOne = expiredTime.NearlyExpiredTimeOne, ProcessType = processType, Status = EOrderStatus.Special })
|
|
|
.Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
var orderDto = _mapper.Map<OrderDto>(order);
|
|
|
await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderExpiredTimeUpdate, orderDto,
|
|
@@ -4489,7 +4491,7 @@ public class OrderController : BaseController
|
|
|
var processType = special.FlowDirection is EFlowDirection.OrgToCenter or EFlowDirection.CenterToCenter or EFlowDirection.FiledToCenter
|
|
|
? EProcessType.Zhiban
|
|
|
: EProcessType.Jiaoban;
|
|
|
- await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { ExpiredTime = expiredTime.ExpiredTime, NearlyExpiredTime = expiredTime.NearlyExpiredTime, NearlyExpiredTimeOne = expiredTime.NearlyExpiredTimeOne, ProcessType = processType,Status = EOrderStatus.Special })
|
|
|
+ await _orderRepository.Updateable().SetColumns(o => new Orders.Order() { ExpiredTime = expiredTime.ExpiredTime, NearlyExpiredTime = expiredTime.NearlyExpiredTime, NearlyExpiredTimeOne = expiredTime.NearlyExpiredTimeOne, ProcessType = processType, Status = EOrderStatus.Special })
|
|
|
.Where(o => o.Id == order.Id).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
var orderDto = _mapper.Map<OrderDto>(order);
|
|
|
await _capPublisher.PublishAsync(Hotline.Share.Mq.EventNames.HotlineOrderExpiredTimeUpdate, orderDto,
|
|
@@ -4631,24 +4633,24 @@ public class OrderController : BaseController
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.Keyword),
|
|
|
d => d.Title.Contains(dto.Keyword!) || d.No.Contains(dto.Keyword!))
|
|
|
//.WhereIF(!string.IsNullOrEmpty(dto.Content), d => d.Content.Contains(dto.Content!))
|
|
|
- .WhereIF(dto.AcceptTypes.Any(), d => dto.AcceptTypes.Contains(d.AcceptType))
|
|
|
- .WhereIF(dto.Channels.Any(), d => dto.Channels.Contains(d.SourceChannel))
|
|
|
- .WhereIF(dto.HotspotIds.Any(), d => dto.HotspotIds.Contains(d.HotspotId))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), d => d.AcceptType == dto.AcceptType)//受理类型
|
|
|
+ //.WhereIF(dto.AcceptTypes.Any(), d => dto.AcceptTypes.Contains(d.AcceptTypeCode)) //受理类型
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Channel), d => d.SourceChannel == dto.Channel)//来源渠道
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.Hotspot), d => d.HotspotSpliceName != null && d.HotspotSpliceName.Contains(dto.Hotspot))
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.TransferPhone), d => d.TransferPhone.Contains(dto.TransferPhone!))
|
|
|
- .WhereIF(dto.OrgCodes.Any(), d => dto.OrgCodes.Contains(d.Workflow.ActualHandleOrgCode))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(dto.OrgName), d => d.CurrentHandleOrgName == dto.OrgName)//接办部门
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.NameOrNo),
|
|
|
d => d.AcceptorName.Contains(dto.NameOrNo!) || d.AcceptorStaffNo.Contains(dto.NameOrNo!))
|
|
|
.WhereIF(dto.CreationTimeStart.HasValue, d => d.CreationTime >= dto.CreationTimeStart)
|
|
|
.WhereIF(dto.CreationTimeEnd.HasValue, d => d.CreationTime <= dto.CreationTimeEnd)
|
|
|
- .WhereIF(dto.EmergencyLevels.Any(), d => dto.EmergencyLevels.Contains(d.EmergencyLevel))
|
|
|
+ //.WhereIF(dto.EmergencyLevels.Any(), d => dto.EmergencyLevels.Contains(d.EmergencyLevel))
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.PhoneNo),
|
|
|
d => d.FromPhone.Contains(dto.PhoneNo!) || d.Contact.Contains(dto.PhoneNo!))
|
|
|
.WhereIF(!string.IsNullOrEmpty(dto.PushTypeCode), d => d.PushTypeCode == dto.PushTypeCode)
|
|
|
.WhereIF(dto.ExpiredTimeStart.HasValue, d => d.ExpiredTime >= dto.ExpiredTimeStart)
|
|
|
.WhereIF(dto.ExpiredTimeEnd.HasValue, d => d.ExpiredTime <= dto.ExpiredTimeEnd)
|
|
|
- .WhereIF(dto.Statuses.Any(), d => dto.Statuses.Contains(d.Status))
|
|
|
- .WhereIF(dto.Statuses.Any(d => d == EOrderStatus.BackToUnAccept),
|
|
|
- d => d.Status <= EOrderStatus.SpecialToUnAccept);
|
|
|
+ .WhereIF(dto.Status.HasValue, d => d.Status == dto.Status)//工单状态
|
|
|
+ .WhereIF(dto.Status != null && dto.Status == EOrderStatus.BackToUnAccept, d => d.Status <= EOrderStatus.SpecialToUnAccept);
|
|
|
if (!_sessionContext.OrgIsCenter && _sessionContext.OrgId.Length >= 6)
|
|
|
{
|
|
|
var oneCode = _sessionContext.OrgId.Substring(0, 6);
|
|
@@ -6198,7 +6200,7 @@ public class OrderController : BaseController
|
|
|
if (string.IsNullOrEmpty(dto.StepId))
|
|
|
{
|
|
|
await _orderRepository.Updateable()
|
|
|
- .SetColumns(o => new Orders.Order() { SignerId = dto.Handler.UserId, SignerName = dto.Handler.Username,Status = EOrderStatus.HandOver })
|
|
|
+ .SetColumns(o => new Orders.Order() { SignerId = dto.Handler.UserId, SignerName = dto.Handler.Username, Status = EOrderStatus.HandOver })
|
|
|
.Where(o => o.Id == dto.OrderId).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
}
|
|
|
else
|
|
@@ -6212,10 +6214,10 @@ public class OrderController : BaseController
|
|
|
{
|
|
|
new(dto.Handler.UserId,dto.Handler.Username,dto.Handler.OrgId,dto.Handler.OrgName,step.RoleId,step.RoleName, new List<WorkflowStep>{step})
|
|
|
}, HttpContext.RequestAborted);
|
|
|
- await _orderRepository.Updateable()
|
|
|
- .SetColumns(o => new Orders.Order() { Status = EOrderStatus.HandOver })
|
|
|
- .Where(o => o.Id == dto.OrderId).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
- }
|
|
|
+ await _orderRepository.Updateable()
|
|
|
+ .SetColumns(o => new Orders.Order() { Status = EOrderStatus.HandOver })
|
|
|
+ .Where(o => o.Id == dto.OrderId).ExecuteCommandAsync(HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
#endregion
|