Parcourir la source

任务 319 市州通用-优化【延期管理-延期列表】的数据查看权限

tangjiang il y a 2 mois
Parent
commit
ab9b486c49
1 fichiers modifiés avec 12 ajouts et 6 suppressions
  1. 12 6
      src/Hotline.Application/Orders/OrderApplication.cs

+ 12 - 6
src/Hotline.Application/Orders/OrderApplication.cs

@@ -5077,21 +5077,27 @@ public class OrderApplication : IOrderApplication, IScopeDependency
                                  step.HandlerOrgId == _sessionContext.RequiredOrgId)
                                ))
                 .Any());
-            if (!_sessionContext.OrgIsCenter)
-            {
-                query.Where(d => d.AutomaticDelayNum == 0 || d.AutomaticDelayNum == null);
-            }
+            //if (!_sessionContext.OrgIsCenter)
+            //{
+            //    query.Where(d => d.AutomaticDelayNum == 0 || d.AutomaticDelayNum == null);
+            //}
         }
 
         return query
             .Includes(d => d.Order)
             .Includes(d => d.Workflow)
+            //如果查询全部
+            //1.1、热线中心用户看系统中所有已申请延期的工单(需排除取消延期的工单)和自动延期的工单
+            //1.2、部门用户看部门及其下级部门已申请延期的工单(需排除取消延期的工单)和部门办理中时自动延期的工单
+            .WhereIF(dto.DataScope is 0, d => (d.AutomaticDelayNum == 0 || d.AutomaticDelayNum == null) && d.DelayState != EDelayState.Withdraw)
+            .WhereIF(dto.DataScope is 0 && !_sessionContext.OrgIsCenter, d => d.CreatorOrgId.StartsWith(_sessionContext.RequiredOrgId))
             .WhereIF(!string.IsNullOrEmpty(dto.Keyword),
                 d => d.Order.Title.Contains(dto.Keyword!) || d.Order.No.Contains(dto.Keyword!))
             .WhereIF(dto.IsApply == true, d => d.DelayState != EDelayState.Examining)
             .WhereIF(dto.IsApply == false, d => d.DelayState == EDelayState.Examining)
             .WhereIF(dto.DelayState != null, d => d.DelayState == dto.DelayState)
-            .WhereIF(dto.DataScope is 1, d => d.CreatorId == _sessionContext.RequiredUserId)
+            //延期列表页面数据范围快捷查询条件选中“我的“时需排除取消延期的工单
+            .WhereIF(dto.DataScope is 1, d => d.CreatorId == _sessionContext.RequiredUserId && d.DelayState != EDelayState.Withdraw)
             .WhereIF(dto.QueryDelayState is EQueryDelayState.Examining, d => d.DelayState == EDelayState.Examining)
             .WhereIF(dto.QueryDelayState is EQueryDelayState.Pass, d => d.DelayState == EDelayState.Pass)
             .WhereIF(dto.QueryDelayState is EQueryDelayState.NoPass, d => d.DelayState == EDelayState.NoPass)
@@ -5108,7 +5114,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
     }
 
     /// <summary>
-    /// 延期列表
+    /// 延期待审批
     /// </summary>
     /// <returns></returns>
     public ISugarQueryable<OrderDelay> WaitDelayList(DelayListDto dto)