diff --git a/src/2.services/ATS.NonCustodial.Application/Impl/Business/AppViolationStatisticsService.cs b/src/2.services/ATS.NonCustodial.Application/Impl/Business/AppViolationStatisticsService.cs index 5283cc4..51b43bb 100644 --- a/src/2.services/ATS.NonCustodial.Application/Impl/Business/AppViolationStatisticsService.cs +++ b/src/2.services/ATS.NonCustodial.Application/Impl/Business/AppViolationStatisticsService.cs @@ -100,15 +100,21 @@ namespace ATS.NonCustodial.Application.Impl.Business [HttpPost] public async Task ViolationStatisticsPageAsync(ViolationStatisticsPageInput input) { + //获取当前用户权限下的案件ids + var limits = User.limits; + var selectLimits = await _appCaseSupervisorRepository.AsQueryable(false, true) + .Where(w => limits.Contains(w.UnitId.ToString())) + .ToListAsync(); + var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList(); //根据当前登录人查看其手里的案件被监管人 var spList = await base.GetCurrentUserCaseListAsync(); //获取案件信息 - var casebaselist = await spList.Where(q => q.AppCaseManagement != null).Select(q => q.AppCaseManagement).ToListAsync(); + var casebaselist = await spList.Where(q => q.AppCaseManagement != null&& caseIdList.Contains(q.AppCaseManagement.Id)).Select(q => q.AppCaseManagement).ToListAsync(); //获取案件id - var casebase = await spList - .Where(q => q.AppCaseManagement != null) - .WhereIf(input.CaseProgress != null, a => a.AppCaseManagement.CaseProgress == input.CaseProgress).Select(q => q.AppCaseManagement.Id).ToListAsync(); - var spIds = await spList.Where(q => q.AppCaseSupervisedPerson != null&& casebase.Contains(q.AppCaseSupervisedPerson.CaseId)).Select(w => w.AppCaseSupervisedPerson!.SupervisedPersonId).ToListAsync(); + //var casebase = await spList + // .Where(q => q.AppCaseManagement != null && caseIdList.Contains(q.AppCaseManagement.Id)) + // .WhereIf(input.CaseProgress != null, a => a.AppCaseManagement.CaseProgress == input.CaseProgress).Select(q => q.AppCaseManagement.Id).ToListAsync(); + var spIds = await spList.Where(q => q.AppCaseSupervisedPerson != null&& caseIdList.Contains(q.AppCaseSupervisedPerson.CaseId)).Select(w => w.AppCaseSupervisedPerson!.SupervisedPersonId).ToListAsync(); //查询记录 var query = await _appEarlyWarningRepository .AsQueryable(false, true).Where(q=> spIds.Contains(q.SupervisedPersonId))