Browse Source

[MODIFY]案件类型统计功能优化查询

dev_wp
zhaozhenjing 3 months ago
parent
commit
70e44379a2
  1. 17
      src/2.services/ATS.NonCustodial.Application/Impl/Business/CaseManagements/AppCaseManagementService.cs

17
src/2.services/ATS.NonCustodial.Application/Impl/Business/CaseManagements/AppCaseManagementService.cs

@ -929,11 +929,18 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements
/// <returns></returns> /// <returns></returns>
public async Task<IResultOutput> CaseTypeStatistics(CaseTypeStatisticsGetPageInput input) public async Task<IResultOutput> CaseTypeStatistics(CaseTypeStatisticsGetPageInput input)
{ {
//获取当前用户权限下的案件ids
var limits = User.limits;
var selectLimits = await _appCaseSupervisorRepository.AsQueryable(false, true)
.Where(w => limits.Contains(w.UnitId.ToString()))
.ToListAsync();
var caseIds = selectLimits.Select(w => w.CaseId).Distinct().ToList();
var data = await _appCaseManagementRepository.AsQueryable(false, true) var data = await _appCaseManagementRepository.AsQueryable(false, true)
.WhereIf(input.KeyWord.NotNull(), a => a.Name.Contains(input.KeyWord)) .WhereIf(input.KeyWord.NotNull(), a => a.Name.Contains(input.KeyWord))
.WhereIf(input.TimeSearch.BeginTime.Length == 2, w => w.CreatedTime > input.TimeSearch.BeginTime[0] && w.CreatedTime < input.TimeSearch.BeginTime[1].AddDays(1)) .WhereIf(input.TimeSearch.BeginTime.Length == 2, w => w.CreatedTime > input.TimeSearch.BeginTime[0] && w.CreatedTime < input.TimeSearch.BeginTime[1].AddDays(1))
.WhereIf(input.TimeSearch.EndTime.Length == 2, w => w.CaseClosedTime > input.TimeSearch.EndTime[0] && w.CaseClosedTime < input.TimeSearch.EndTime[1].AddDays(1)) .WhereIf(input.TimeSearch.EndTime.Length == 2, w => w.CaseClosedTime > input.TimeSearch.EndTime[0] && w.CaseClosedTime < input.TimeSearch.EndTime[1].AddDays(1))
.WhereIf(input.ajtype.NotNull(), w => w.CaseTypeId == input.ajtype.ToLong()) .WhereIf(input.ajtype.NotNull(), w => w.CaseTypeId == input.ajtype.ToLong()).Where(w=> caseIds.Contains(w.Id))
.ToListAsync(); .ToListAsync();
var dataGroup = data.GroupBy(w => w.CaseTypeId); var dataGroup = data.GroupBy(w => w.CaseTypeId);
@ -978,6 +985,12 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements
/// <returns></returns> /// <returns></returns>
public async Task<IResultOutput> CaseHandlingFrequencyStatistics(CaseHandlingFrequencyStatisticsGetPageInput input) public async Task<IResultOutput> CaseHandlingFrequencyStatistics(CaseHandlingFrequencyStatisticsGetPageInput input)
{ {
//获取当前用户权限下的案件ids
var limits = User.limits;
var selectLimits = await _appCaseSupervisorRepository.AsQueryable(false, true)
.Where(w => limits.Contains(w.UnitId.ToString()))
.ToListAsync();
var caseIds = selectLimits.Select(w => w.CaseId).Distinct().ToList();
//query //query
var query = await (await base.GetCurrentUserCaseListAsync()) var query = await (await base.GetCurrentUserCaseListAsync())
//.Where(w => w.AppCaseSupervisedPerson != null && w.AppCaseManagement.CaseProgress != CaseProgressEnum.Closed) //.Where(w => w.AppCaseSupervisedPerson != null && w.AppCaseManagement.CaseProgress != CaseProgressEnum.Closed)
@ -991,7 +1004,7 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements
SupervisedPersonName = w.AppCaseSupervisedPerson.SupervisedPersonName SupervisedPersonName = w.AppCaseSupervisedPerson.SupervisedPersonName
}).ToListAsync(); }).ToListAsync();
var dataGroup = query.GroupBy(w => new var dataGroup = query.Where(w=> caseIds.Contains(w.CaseId)).GroupBy(w => new
{ {
w.CaseId, w.CaseId,
w.SupervisedPersonId, w.SupervisedPersonId,

Loading…
Cancel
Save