|
@@ -3173,16 +3173,19 @@ public class OrderController : BaseController
|
|
|
|
|
|
var query = _orderRepository.Queryable();
|
|
|
if(dto.IsHandled.HasValue)
|
|
|
+ {
|
|
|
+ var hasHandled = dto.IsHandled.Value;
|
|
|
query = query.Where(d => SqlFunc.Subqueryable<WorkflowTrace>()
|
|
|
.Where(step => step.ExternalId == d.Id &&
|
|
|
- (dto.IsHandled!.Value || step.Status != EWorkflowStepStatus.Handled) &&
|
|
|
- (!dto.IsHandled!.Value || step.Status == EWorkflowStepStatus.Handled && step.TraceState != EWorkflowTraceState.StepRemoveByPrevious) &&
|
|
|
+ (hasHandled || step.Status != EWorkflowStepStatus.Handled) &&
|
|
|
+ (!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) &&
|
|
|
(string.IsNullOrEmpty(d.SignerId) || d.SignerId == _sessionContext.RequiredUserId))
|
|
|
);
|
|
|
+ }
|
|
|
|
|
|
var (total, items) = await query
|
|
|
.WhereIF(dto.IsProvince.HasValue, d => d.IsProvince == dto.IsProvince)
|