|
|
|
@ -31,6 +31,7 @@ using Microsoft.AspNetCore.Http; |
|
|
|
using Microsoft.AspNetCore.Mvc; |
|
|
|
using Microsoft.AspNetCore.Mvc; |
|
|
|
using Microsoft.EntityFrameworkCore; |
|
|
|
using Microsoft.EntityFrameworkCore; |
|
|
|
using SixLabors.ImageSharp; |
|
|
|
using SixLabors.ImageSharp; |
|
|
|
|
|
|
|
using System.Linq; |
|
|
|
using Yitter.IdGenerator; |
|
|
|
using Yitter.IdGenerator; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -145,9 +146,11 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements |
|
|
|
var selectLimits = await _appCaseSupervisorRepository.AsQueryable(false, true) |
|
|
|
var selectLimits = await _appCaseSupervisorRepository.AsQueryable(false, true) |
|
|
|
.Where(w => limits.Contains(w.UnitId.ToString())) |
|
|
|
.Where(w => limits.Contains(w.UnitId.ToString())) |
|
|
|
.ToListAsync(); |
|
|
|
.ToListAsync(); |
|
|
|
input.CaseIds = selectLimits.Select(w => w.CaseId).Distinct().ToList(); |
|
|
|
var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList(); |
|
|
|
|
|
|
|
|
|
|
|
var express = await GetExpression(input, _appCaseManagementRepository.AsQueryable(false, true)); |
|
|
|
var express = await GetExpression(input, _appCaseManagementRepository.AsQueryable(false, true)); |
|
|
|
|
|
|
|
// 先应用案件ID过滤条件 |
|
|
|
|
|
|
|
express = express.Where(w => caseIdList.Contains(w.Id)); |
|
|
|
|
|
|
|
|
|
|
|
var rtn = await base.GetPageAsync<AppCaseManagement, AppCaseManagementGetPageInput, AppCaseManagementListDto>(input, express); |
|
|
|
var rtn = await base.GetPageAsync<AppCaseManagement, AppCaseManagementGetPageInput, AppCaseManagementListDto>(input, express); |
|
|
|
|
|
|
|
|
|
|
|
@ -239,8 +242,18 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements |
|
|
|
[HttpPost] |
|
|
|
[HttpPost] |
|
|
|
public async Task<IResultOutput> caseStatistics() |
|
|
|
public async Task<IResultOutput> caseStatistics() |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
//获取当前用户权限下的案件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 express = await base.GetCurrentUserCaseListAsync(); |
|
|
|
var express = await base.GetCurrentUserCaseListAsync(); |
|
|
|
|
|
|
|
express = express.Where(w =>w.AppCaseManagement!=null && caseIdList.Contains(w.AppCaseManagement.Id)&& w.AppCaseSupervisedPerson != null && caseIdList.Contains(w.AppCaseSupervisedPerson.CaseId)&& w.AppCaseSupervisor != null && caseIdList.Contains(w.AppCaseSupervisor.CaseId)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//案件信息Id |
|
|
|
//案件信息Id |
|
|
|
var caseIds = await express.Select(w => w.AppCaseManagement.Id).ToListAsync(); |
|
|
|
var caseIds = await express.Select(w => w.AppCaseManagement.Id).ToListAsync(); |
|
|
|
//监管人数 |
|
|
|
//监管人数 |
|
|
|
@ -266,9 +279,16 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements |
|
|
|
[HttpPost] |
|
|
|
[HttpPost] |
|
|
|
public async Task<IResultOutput> casetypeStatistics() |
|
|
|
public async Task<IResultOutput> casetypeStatistics() |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
//获取当前用户权限下的案件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 diclist = new List<dynamic>(); |
|
|
|
var diclist = new List<dynamic>(); |
|
|
|
//获取当前用户能看到的数据Id |
|
|
|
//获取当前用户能看到的数据Id |
|
|
|
var caseIds = await (await base.GetCurrentUserCaseListAsync()).Select(w => w.AppCaseManagement.Id).ToListAsync(); |
|
|
|
var caseIds = await (await base.GetCurrentUserCaseListAsync()).Where(w=>w.AppCaseManagement!=null&& caseIdList.Contains(w.AppCaseManagement.Id)).Select(w => w.AppCaseManagement.Id).ToListAsync(); |
|
|
|
//获取案件信息 |
|
|
|
//获取案件信息 |
|
|
|
var express = await _appCaseManagementRepository.AsQueryable(false, true).Where(q => caseIds.Contains(q.Id)).ToListAsync(); |
|
|
|
var express = await _appCaseManagementRepository.AsQueryable(false, true).Where(q => caseIds.Contains(q.Id)).ToListAsync(); |
|
|
|
var otherexpress = express; |
|
|
|
var otherexpress = express; |
|
|
|
@ -947,10 +967,11 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements |
|
|
|
var caseIds = selectLimits.Select(w => w.CaseId).Distinct().ToList(); |
|
|
|
var caseIds = selectLimits.Select(w => w.CaseId).Distinct().ToList(); |
|
|
|
|
|
|
|
|
|
|
|
var data = await _appCaseManagementRepository.AsQueryable(false, true) |
|
|
|
var data = await _appCaseManagementRepository.AsQueryable(false, true) |
|
|
|
|
|
|
|
.Where(w => caseIds.Contains(w.Id)) |
|
|
|
.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()).Where(w => caseIds.Contains(w.Id)) |
|
|
|
.WhereIf(input.ajtype.NotNull(), w => w.CaseTypeId == input.ajtype.ToLong()) |
|
|
|
.ToListAsync(); |
|
|
|
.ToListAsync(); |
|
|
|
|
|
|
|
|
|
|
|
var dataGroup = data.GroupBy(w => w.CaseTypeId); |
|
|
|
var dataGroup = data.GroupBy(w => w.CaseTypeId); |
|
|
|
@ -1112,7 +1133,15 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements |
|
|
|
/// <returns></returns> |
|
|
|
/// <returns></returns> |
|
|
|
public async Task<IResultOutput> ImBusinessWorkbench() |
|
|
|
public async Task<IResultOutput> ImBusinessWorkbench() |
|
|
|
{ |
|
|
|
{ |
|
|
|
var caseIds = await (await base.GetCurrentUserCaseListAsync()).Select(w => w.AppCaseManagement.Id).ToListAsync(); |
|
|
|
//获取当前用户权限下的案件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 caseIds = await (await base.GetCurrentUserCaseListAsync()).Where(w => w.AppCaseManagement != null && caseIdList.Contains(w.AppCaseManagement.Id)).Select(w => w.AppCaseManagement.Id).ToListAsync(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var imManagementList = await (from cm in _appCaseManagementRepository.AsQueryable(false, true) |
|
|
|
var imManagementList = await (from cm in _appCaseManagementRepository.AsQueryable(false, true) |
|
|
|
.Where(w => w.CaseProgress != CaseProgressEnum.Closed && caseIds.Contains(w.Id)) |
|
|
|
.Where(w => w.CaseProgress != CaseProgressEnum.Closed && caseIds.Contains(w.Id)) |
|
|
|
@ -1139,11 +1168,18 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements |
|
|
|
/// <returns></returns> |
|
|
|
/// <returns></returns> |
|
|
|
public async Task<IResultOutput> CaseBusinessWorkbench() |
|
|
|
public async Task<IResultOutput> CaseBusinessWorkbench() |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
//获取当前用户权限下的案件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 dataDict = await _appDictionaryService.GetListNoApiAsync(null); |
|
|
|
var dataDict = await _appDictionaryService.GetListNoApiAsync(null); |
|
|
|
var caseList = (await (await base.GetCurrentUserCaseListAsync()).ToListAsync()) |
|
|
|
var caseList = (await (await base.GetCurrentUserCaseListAsync()).ToListAsync()) |
|
|
|
.Where(w => w.AppCaseManagement.CaseProgress != CaseProgressEnum.Closed) |
|
|
|
.Where(w => w.AppCaseManagement!=null && w.AppCaseManagement.CaseProgress != CaseProgressEnum.Closed && caseIdList.Contains(w.AppCaseManagement.Id) |
|
|
|
|
|
|
|
&&w.AppCaseSupervisedPerson!=null && caseIdList.Contains(w.AppCaseSupervisedPerson.CaseId)&&w.AppCaseSupervisor !=null && caseIdList.Contains(w.AppCaseSupervisor.CaseId)) |
|
|
|
.OrderByDescending(w => w.AppCaseSupervisedPerson?.CreatedTime) |
|
|
|
.OrderByDescending(w => w.AppCaseSupervisedPerson?.CreatedTime) |
|
|
|
.Where(w => w.AppCaseSupervisedPerson != null) |
|
|
|
|
|
|
|
.Skip(0) |
|
|
|
.Skip(0) |
|
|
|
.Take(5) |
|
|
|
.Take(5) |
|
|
|
.Select(caseAgg => |
|
|
|
.Select(caseAgg => |
|
|
|
@ -1457,6 +1493,8 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements |
|
|
|
/// <returns></returns> |
|
|
|
/// <returns></returns> |
|
|
|
public async Task<List<long>> GetUserIdListByCurrentUser() |
|
|
|
public async Task<List<long>> GetUserIdListByCurrentUser() |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
var limits = User.limits; |
|
|
|
|
|
|
|
|
|
|
|
var data = await (await base.GetCurrentUserCaseListAsync()).ToListAsync(); |
|
|
|
var data = await (await base.GetCurrentUserCaseListAsync()).ToListAsync(); |
|
|
|
|
|
|
|
|
|
|
|
var userList = new List<long>(); |
|
|
|
var userList = new List<long>(); |
|
|
|
|