Ver Fonte

中心数据查询

田爽 há 10 meses atrás
pai
commit
87b37b8f87
1 ficheiros alterados com 13 adições e 5 exclusões
  1. 13 5
      src/Hotline.Api/Controllers/OrderController.cs

+ 13 - 5
src/Hotline.Api/Controllers/OrderController.cs

@@ -3162,9 +3162,8 @@ public class OrderController : BaseController
                 ((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))) &&
-                (((dto.IsHandled.HasValue && dto.IsHandled == false) || step.Status != EWorkflowStepStatus.Handled) ||
-                ((dto.IsHandled.HasValue && dto.IsHandled == true)) || step.Status == EWorkflowStepStatus.Handled)
-                )))
+                 (((dto.IsHandled.HasValue && dto.IsHandled == false) && step.Status != EWorkflowStepStatus.Handled)||
+                ((dto.IsHandled.HasValue && dto.IsHandled == true) && step.Status == EWorkflowStepStatus.Handled)))))
             .WhereIF(dto.IsProvince.HasValue, d => d.IsProvince == dto.IsProvince)
             .WhereIF(dto.IsHandled.HasValue, d => handleStatuses.Contains(d.Status))
             .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Title.StartsWith(dto.Keyword!))
@@ -3198,8 +3197,17 @@ public class OrderController : BaseController
         if (dto.StartTimeEnd.HasValue)
             dto.StartTimeEnd = dto.StartTimeEnd.Value.AddDays(1).AddSeconds(-1);
 
-        var (total, items) = await _orderRepository.Queryable(canView: false)
-            .Where(x => x.Workflow.Steps.Any(s => s.Status < EWorkflowStepStatus.Handled && s.HandlerOrgId == OrgSeedData.CenterId))
+        var (total, items) = await _orderRepository.Queryable()
+	        .LeftJoin<WorkflowStep>((d, step) => d.Id == step.ExternalId)
+	        .Where((d, step) =>
+		        ((string.IsNullOrEmpty(d.WorkflowId) && (string.IsNullOrEmpty(d.SignerId) || d.SignerId == _sessionContext.RequiredUserId)) ||
+		         (!string.IsNullOrEmpty(d.WorkflowId) &&
+		          ((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))) &&
+		          ( step.Status != EWorkflowStepStatus.Handled )
+		         )))
+			.Where(x => x.Workflow.Steps.Any(s => s.Status < EWorkflowStepStatus.Handled && s.HandlerOrgId == OrgSeedData.CenterId))
             .Where(x => x.Source < ESource.MLSQ || x.Source > ESource.WZSC)
             .Where(x => x.Status != EOrderStatus.BackToProvince && x.Status < EOrderStatus.Filed)
             .WhereIF(!string.IsNullOrEmpty(dto.No), x => x.No!.Contains(dto.No!))