diff --git a/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridService.cs b/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridService.cs index 6bf918ce..6c05e6a8 100644 --- a/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridService.cs +++ b/Src/Dlhis.Basic/WorkGrids/Services/Implements/WorkGridService.cs @@ -147,12 +147,16 @@ public class WorkGridService : IWorkGridService .LeftJoin((x, ga) => x.LeaderUserCode == ga.Code) .WhereIF(!isAll, x => x.LeaderUserCode == userCode) .WhereIF(request.Search.IsPresent(), x => x.Name.Contains(request.Search) || x.LeaderUserCode == request.Search) - .Where(x => SqlFunc.Subqueryable() - .LeftJoin((p, pga) => p.UserCode == pga.Code) - .Where(p => p.WorkGridCode == x.Code) - .Where((p, pga) => pga.Factory == factory) - .Where(p => p.IsDeleted == false) - .Any() + .Where(x => SqlFunc.Subqueryable() + .Where(p => p.Code == x.LeaderUserCode && p.Factory == factory) + .Any() + || + SqlFunc.Subqueryable() + .LeftJoin((p, pga) => p.UserCode == pga.Code) + .Where(p => p.WorkGridCode == x.Code) + .Where((p, pga) => pga.Factory == factory) + .Where(p => p.IsDeleted == false) + .Any() ) .Select((x, ga) => new WorkGridPageResponse {