|
@@ -2310,10 +2310,8 @@ public class OrderController : BaseController
|
|
|
[HttpGet("fixed")]
|
|
|
public async Task<IReadOnlyList<OrderDto>> QueryFixed([FromQuery] QueryOrderFixedDto dto)
|
|
|
{
|
|
|
- var count = int.Parse(_systemSettingCacheManager.GetSetting(SettingConstants.FixedQueryCount)
|
|
|
- .SettingValue[0]);
|
|
|
var query = _orderApplication.QueryOrders(dto);
|
|
|
- var orders = await query.ToFixedListAsync(dto.QueryIndex, count, HttpContext.RequestAborted);
|
|
|
+ var orders = await query.ToFixedListAsync(dto.QueryIndex, cancellationToken: HttpContext.RequestAborted);
|
|
|
return _mapper.Map<IReadOnlyList<OrderDto>>(orders);
|
|
|
}
|
|
|
|
|
@@ -2420,40 +2418,42 @@ public class OrderController : BaseController
|
|
|
if (!string.IsNullOrEmpty(order.WorkflowId))
|
|
|
{
|
|
|
bool canInsteadHandle = false;
|
|
|
- //班长代办
|
|
|
- var settingEnable = _systemSettingCacheManager.GetSetting(SettingConstants.ChargeDAffaires);
|
|
|
+ //班长代办
|
|
|
+ var settingEnable = _systemSettingCacheManager.GetSetting(SettingConstants.ChargeDAffaires);
|
|
|
var isEnable = settingEnable != null && settingEnable.SettingValue.Any() ? int.Parse(settingEnable?.SettingValue[0]) : 0;
|
|
|
- if (isEnable > 0)
|
|
|
- {
|
|
|
- var setting = _systemSettingCacheManager.GetSetting(SettingConstants.SeatsMonitor);
|
|
|
- var settingStr = setting?.SettingValue;
|
|
|
- var roles = _sessionContext.Roles;
|
|
|
- foreach (var item in settingStr)
|
|
|
- {
|
|
|
+ if (isEnable > 0)
|
|
|
+ {
|
|
|
+ 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))
|
|
|
- {
|
|
|
- canInsteadHandle = true;
|
|
|
- }else {
|
|
|
+ {
|
|
|
+ canInsteadHandle = true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
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);
|
|
|
- canInsteadHandle = step != null && !string.IsNullOrEmpty(step.Id);
|
|
|
- if (canInsteadHandle && step.IsInCountersign())
|
|
|
- canInsteadHandle = false;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ var step = unhandleSteps.FirstOrDefault(d => d.BusinessType == (EBusinessType)type);
|
|
|
+ canInsteadHandle = step != null && !string.IsNullOrEmpty(step.Id);
|
|
|
+ if (canInsteadHandle && step.IsInCountersign())
|
|
|
+ canInsteadHandle = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
var result = await _workflowDomainService.GetWorkflowHandlePermissionAsync(
|
|
|
order.WorkflowId, _sessionContext.RequiredUserId, _sessionContext.RequiredOrgId, _sessionContext.Roles,
|
|
|
cancellationToken: HttpContext.RequestAborted);
|
|
@@ -2464,12 +2464,12 @@ public class OrderController : BaseController
|
|
|
dto.CanInsteadHandle = !dto.CanHandle && canInsteadHandle;
|
|
|
dto.PreviousOpinion = result.previousOpinion;
|
|
|
|
|
|
- await _mediator.Publish(new GetOrderDetailNotify(result.Workflow,
|
|
|
+ await _mediator.Publish(new GetOrderDetailNotify(result.Workflow,
|
|
|
_sessionContext.RequiredUserId, _sessionContext.UserName,
|
|
|
_sessionContext.RequiredOrgId, _sessionContext.OrgName,
|
|
|
_sessionContext.OrgAreaCode, _sessionContext.OrgAreaName));
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
|
|
|
//var dto = _mapper.Map<OrderDto>(order!);
|
|
|
//dto.CountersignId = countersignId;
|
|
@@ -2602,7 +2602,7 @@ public class OrderController : BaseController
|
|
|
}
|
|
|
|
|
|
//内容分词
|
|
|
- await _orderApplication.OrderParticiple(dto.Content, order.Id,order.CreationTime, HttpContext.RequestAborted);
|
|
|
+ await _orderApplication.OrderParticiple(dto.Content, order.Id, order.CreationTime, HttpContext.RequestAborted);
|
|
|
//敏感分词
|
|
|
await _orderApplication.OrderSensitiveParticiple(dto.Content, order.Id, HttpContext.RequestAborted);
|
|
|
//sms
|
|
@@ -2963,38 +2963,38 @@ public class OrderController : BaseController
|
|
|
[HttpGet("nextsteps_commission/{orderId}")]
|
|
|
public async Task<NextStepsWithOpinionDto<RecommendStepOption>> GetNextStepsWithRecommendCommission(string orderId)
|
|
|
{
|
|
|
- var order = await _orderDomainService.GetOrderAsync(orderId, cancellationToken: HttpContext.RequestAborted);
|
|
|
- if (string.IsNullOrEmpty(order.WorkflowId))
|
|
|
- throw UserFriendlyException.SameMessage("该工单未开启流程");
|
|
|
- var unhandleSteps =
|
|
|
- await _workflowDomainService.GetUnhandleStepsByOthersAsync(order.WorkflowId, HttpContext.RequestAborted);
|
|
|
- if (unhandleSteps.Count > 1)
|
|
|
- throw UserFriendlyException.SameMessage("会签工单不允许班长代办");
|
|
|
- if (unhandleSteps.Count < 1)
|
|
|
- throw UserFriendlyException.SameMessage("未查询到流程信息");
|
|
|
+ var order = await _orderDomainService.GetOrderAsync(orderId, cancellationToken: HttpContext.RequestAborted);
|
|
|
+ if (string.IsNullOrEmpty(order.WorkflowId))
|
|
|
+ throw UserFriendlyException.SameMessage("该工单未开启流程");
|
|
|
+ var unhandleSteps =
|
|
|
+ await _workflowDomainService.GetUnhandleStepsByOthersAsync(order.WorkflowId, HttpContext.RequestAborted);
|
|
|
+ if (unhandleSteps.Count > 1)
|
|
|
+ throw UserFriendlyException.SameMessage("会签工单不允许班长代办");
|
|
|
+ if (unhandleSteps.Count < 1)
|
|
|
+ throw UserFriendlyException.SameMessage("未查询到流程信息");
|
|
|
var stepOne = unhandleSteps.First();
|
|
|
if (stepOne.IsInCountersign())
|
|
|
- throw UserFriendlyException.SameMessage("会签工单不允许班长代办");
|
|
|
- var dto = await _workflowApplication.GetNextStepsAsync(order.WorkflowId, stepOne.Id, HttpContext.RequestAborted);
|
|
|
- dto.ExpiredTime = order.ExpiredTime;
|
|
|
- var rsp = _mapper.Map<NextStepsWithOpinionDto<RecommendStepOption>>(dto);
|
|
|
- foreach (var step in rsp.Steps)
|
|
|
- {
|
|
|
- if (dto.CurrentStepBusinessType is not EBusinessType.Send ||
|
|
|
- step.BusinessType is not EBusinessType.Department) continue;
|
|
|
- var org = await _organizeRepository.GetAsync(d => d.AreaCode == order.AreaCode, HttpContext.RequestAborted);
|
|
|
- if (org is null) continue;
|
|
|
- step.RecommendOrgId = org.Id;
|
|
|
- step.RecommendOrgName = org.Name;
|
|
|
- }
|
|
|
-
|
|
|
- return rsp;
|
|
|
- }
|
|
|
-
|
|
|
- /// <summary>
|
|
|
- /// 结束会签
|
|
|
- /// </summary>
|
|
|
- [HttpPost("endcs")]
|
|
|
+ throw UserFriendlyException.SameMessage("会签工单不允许班长代办");
|
|
|
+ var dto = await _workflowApplication.GetNextStepsAsync(order.WorkflowId, stepOne.Id, HttpContext.RequestAborted);
|
|
|
+ dto.ExpiredTime = order.ExpiredTime;
|
|
|
+ var rsp = _mapper.Map<NextStepsWithOpinionDto<RecommendStepOption>>(dto);
|
|
|
+ foreach (var step in rsp.Steps)
|
|
|
+ {
|
|
|
+ if (dto.CurrentStepBusinessType is not EBusinessType.Send ||
|
|
|
+ step.BusinessType is not EBusinessType.Department) continue;
|
|
|
+ var org = await _organizeRepository.GetAsync(d => d.AreaCode == order.AreaCode, HttpContext.RequestAborted);
|
|
|
+ if (org is null) continue;
|
|
|
+ step.RecommendOrgId = org.Id;
|
|
|
+ step.RecommendOrgName = org.Name;
|
|
|
+ }
|
|
|
+
|
|
|
+ return rsp;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 结束会签
|
|
|
+ /// </summary>
|
|
|
+ [HttpPost("endcs")]
|
|
|
public async Task EndCountersign([FromBody] EndCountersignDto dto)
|
|
|
{
|
|
|
var workflow = await _workflowDomainService.TerminalCountersignAsync(dto.CountersignId, HttpContext.RequestAborted);
|
|
@@ -3227,7 +3227,7 @@ public class OrderController : BaseController
|
|
|
//}
|
|
|
return new PagedDto<OrderDto>(total, _mapper.Map<IReadOnlyList<OrderDto>>(items));
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 查询坐席待办
|
|
|
/// </summary>
|
|
@@ -3244,7 +3244,7 @@ public class OrderController : BaseController
|
|
|
dto.EndTime = dto.EndTime.Value.AddDays(1).AddSeconds(-1);
|
|
|
|
|
|
var query = _orderRepository.Queryable();
|
|
|
- if(dto.IsHandled.HasValue)
|
|
|
+ if (dto.IsHandled.HasValue)
|
|
|
{
|
|
|
var hasHandled = dto.IsHandled.Value;
|
|
|
query = query.Where(d => SqlFunc.Subqueryable<WorkflowTrace>()
|
|
@@ -3253,8 +3253,8 @@ public class OrderController : BaseController
|
|
|
(!hasHandled || step.Status == EWorkflowStepStatus.Handled && step.TraceState != EWorkflowTraceState.StepRemoveByPrevious) &&
|
|
|
((step.FlowAssignType == EFlowAssignType.User && !string.IsNullOrEmpty(step.HandlerId) && step.HandlerId == _sessionContext.RequiredUserId) ||
|
|
|
(step.FlowAssignType == EFlowAssignType.Org && !string.IsNullOrEmpty(step.HandlerOrgId) && step.HandlerOrgId == _sessionContext.RequiredOrgId) ||
|
|
|
- (step.FlowAssignType == EFlowAssignType.Role && !string.IsNullOrEmpty(step.RoleId) && _sessionContext.Roles.Contains(step.RoleId)))).Any() ||
|
|
|
- (string.IsNullOrEmpty(d.WorkflowId) &&
|
|
|
+ (step.FlowAssignType == EFlowAssignType.Role && !string.IsNullOrEmpty(step.RoleId) && _sessionContext.Roles.Contains(step.RoleId)))).Any() ||
|
|
|
+ (string.IsNullOrEmpty(d.WorkflowId) &&
|
|
|
(string.IsNullOrEmpty(d.SignerId) || d.SignerId == _sessionContext.RequiredUserId))
|
|
|
);
|
|
|
}
|
|
@@ -3311,7 +3311,7 @@ public class OrderController : BaseController
|
|
|
|
|
|
return new PagedDto<OrderDto>(total, _mapper.Map<IReadOnlyList<OrderDto>>(items));
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 查询中心待办
|
|
|
/// </summary>
|