Browse Source

[MODIFY]短信增加接收人字段,修改人员修改界面的老bug

dev-zzj
zhaozhenjing 2 months ago
parent
commit
c384f24cc1
  1. 1
      src/1.datas/ATS.NonCustodial.Domain/Entities/Admins/AppSMS.cs
  2. 12
      src/2.services/ATS.NonCustodial.Application/Impl/Admins/SMSService.cs
  3. 6
      src/2.services/ATS.NonCustodial.Application/Impl/Admins/UserService.cs
  4. 6
      src/2.services/ATS.NonCustodial.Application/Impl/Business/AppBusinessApplicationService.cs
  5. 10
      src/2.services/ATS.NonCustodial.Application/Impl/Business/AppEarlyWarningService.cs
  6. 41
      src/2.services/ATS.NonCustodial.Application/Impl/Business/AppManagementService.cs
  7. 20
      src/2.services/ATS.NonCustodial.Application/Impl/Business/AppViolationStatisticsService.cs
  8. 34
      src/2.services/ATS.NonCustodial.Application/Impl/Business/CaseManagements/AppCaseManagementService.cs
  9. 8
      src/2.services/ATS.NonCustodial.Application/Impl/Business/MaterialManager/AppFileAccessRecordsService.cs
  10. 10
      src/2.services/ATS.NonCustodial.Application/Impl/Logs/OperationLogService.cs
  11. 5
      src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Admins/SMS/Output/SmsListDto.cs

1
src/1.datas/ATS.NonCustodial.Domain/Entities/Admins/AppSMS.cs

@ -20,6 +20,7 @@ namespace ATS.NonCustodial.Domain.Entities.Admins
{ {
Id = id; Id = id;
} }
public string receiver { get; set; }
public string phone { get; set; } = string.Empty; public string phone { get; set; } = string.Empty;

12
src/2.services/ATS.NonCustodial.Application/Impl/Admins/SMSService.cs

@ -66,9 +66,9 @@ namespace ATS.NonCustodial.Application.Impl.Admins
foreach (var item in rtn.Data) foreach (var item in rtn.Data)
{ {
var peoson = await _appUserRepository.AsQueryable(false, true).Where(w => w.Phone == item.Phone).ToListAsync();
item.Name = peoson.FirstOrDefault()?.UserName; item.Name = item.Receiver;
switch(item.Type) switch (item.Type)
{ {
case "CheckCode": case "CheckCode":
item.TypeDes = "验证码"; break; item.TypeDes = "验证码"; break;
@ -217,6 +217,7 @@ namespace ATS.NonCustodial.Application.Impl.Admins
sendMessage = new string[] { supervisedPerson, year, month, day, msg }; sendMessage = new string[] { supervisedPerson, year, month, day, msg };
templateId = "2534751"; templateId = "2534751";
addSMS.type = "Alert"; addSMS.type = "Alert";
addSMS.receiver = supervisedPerson;
} }
else if (alert == MessageAlertTypeEnum.Approved) else if (alert == MessageAlertTypeEnum.Approved)
{ {
@ -224,6 +225,8 @@ namespace ATS.NonCustodial.Application.Impl.Admins
sendMessage = new string[] { supervisedPerson, year, month, day, msg }; sendMessage = new string[] { supervisedPerson, year, month, day, msg };
templateId = "2535130"; templateId = "2535130";
addSMS.type = "Approved"; addSMS.type = "Approved";
addSMS.receiver = supervisedPerson;
} }
else if (alert == MessageAlertTypeEnum.ReviewNotification) else if (alert == MessageAlertTypeEnum.ReviewNotification)
{ {
@ -231,6 +234,8 @@ namespace ATS.NonCustodial.Application.Impl.Admins
sendMessage = new string[] { supervisor, supervisedPerson, year, month, day, msg }; sendMessage = new string[] { supervisor, supervisedPerson, year, month, day, msg };
templateId = "2535127"; templateId = "2535127";
addSMS.type = "ReviewNotification"; addSMS.type = "ReviewNotification";
addSMS.receiver = supervisor;
} }
else else
{ {
@ -238,6 +243,7 @@ namespace ATS.NonCustodial.Application.Impl.Admins
sendMessage = new string[] { supervisor, supervisedPerson, year, month, day, msg }; sendMessage = new string[] { supervisor, supervisedPerson, year, month, day, msg };
templateId = "2535150"; templateId = "2535150";
addSMS.type = "RegulatoryAlert"; addSMS.type = "RegulatoryAlert";
addSMS.receiver = supervisor;
} }
// 发送短信 // 发送短信
var sendResult = SendSMS(phone, sendMessage, templateId); var sendResult = SendSMS(phone, sendMessage, templateId);

6
src/2.services/ATS.NonCustodial.Application/Impl/Admins/UserService.cs

@ -538,7 +538,11 @@ namespace ATS.NonCustodial.Application.Impl.Admins
w => w.DataStatus)!); w => w.DataStatus)!);
if (input.RoleIds != null && input.RoleIds.Count() > 0) if (input.RoleIds != null && input.RoleIds.Count() > 0)
{ {
await _userRoleRepository.DeleteAsync(a => a.UserId == user.Id && input.RoleIds.Contains(a.RoleId)); var roleList = await _roleRepository.AsQueryable(false, true)
.Where(w=> w.Code == "admin" || w.Code == "supervisor")
.Select(s=>s.Id).ToListAsync();
await _userRoleRepository.DeleteAsync(a => a.UserId == user.Id && roleList.Contains(a.RoleId));
if (input.RoleIds == null || !input.RoleIds.Any()) return ResultOutput.Ok(); if (input.RoleIds == null || !input.RoleIds.Any()) return ResultOutput.Ok();
{ {

6
src/2.services/ATS.NonCustodial.Application/Impl/Business/AppBusinessApplicationService.cs

@ -246,10 +246,10 @@ namespace ATS.NonCustodial.Application.Impl.Business
w = w.AndNotNull(w => w = w.AndNotNull(w =>
w.ApplicationTypeId == input.ApplicationTypeId && w.ApplicationTypeId == input.ApplicationTypeId &&
w.ActiveTimePeriodBegin == input.ActiveTimePeriodBegin && w.ActiveTimePeriodBegin == input.ActiveTimePeriodBegin &&
w.ActiveTimePeriodEnd == input.ActiveTimePeriodEnd w.ActiveTimePeriodEnd == input.ActiveTimePeriodEnd &&
w.SupervisedPersonId == User.Id
, input.ApplicationTypeId != default); , input.ApplicationTypeId != default);
msg = $"当前申请类型{applicationType.Name}在当前时间段:{input.ActiveTimePeriodBegin}-{input.ActiveTimePeriodEnd}已存在";
msg = $"当前申请类型{input.ApplicationTypeId}在当前时间段:{input.ActiveTimePeriodBegin}-{input.ActiveTimePeriodEnd}已存在";
return (w, msg); return (w, msg);
}); });

10
src/2.services/ATS.NonCustodial.Application/Impl/Business/AppEarlyWarningService.cs

@ -305,6 +305,8 @@ namespace ATS.NonCustodial.Application.Impl.Business
var express = await GetExpression(input, _appEarlyWarningRepository.AsQueryable(false, true)); var express = await GetExpression(input, _appEarlyWarningRepository.AsQueryable(false, true));
// 先应用案件ID过滤条件 // 先应用案件ID过滤条件
express = express.Where(w => caseIdList.Contains(w.CaseId)); express = express.Where(w => caseIdList.Contains(w.CaseId));
// 然后再获取分页数据 // 然后再获取分页数据
return await base.GetEntityAddPageAsync<AppEarlyWarning, AppEarlyWarningGetPageInput, AppEarlyWarningListDto>(input, express); return await base.GetEntityAddPageAsync<AppEarlyWarning, AppEarlyWarningGetPageInput, AppEarlyWarningListDto>(input, express);
} }
@ -475,7 +477,15 @@ namespace ATS.NonCustodial.Application.Impl.Business
.WhereIf(pageInput.UserSearch != null, p => p.SupervisedPersonId == pageInput.UserSearch!.ModifiedUserId); .WhereIf(pageInput.UserSearch != null, p => p.SupervisedPersonId == pageInput.UserSearch!.ModifiedUserId);
var express = base.GetEntityAddExpression<AppEarlyWarning, AppEarlyWarningGetPageInput, long>(pageInput, query); var express = base.GetEntityAddExpression<AppEarlyWarning, AppEarlyWarningGetPageInput, long>(pageInput, query);
var userRole = await _userService.IsAdmin(null);
//非管理员只能看到自己监管的案件
if (!userRole.IsAdmin)
{
var supervisorCaseList = await _appCaseSupervisorRepository.AsQueryable(false, true)
.Where(w => w.SupervisorId == User.Id).Select(s => s.CaseId).ToListAsync();
express = express.Where(w => supervisorCaseList.Contains(w.Id));
}
return express; return express;
} }

41
src/2.services/ATS.NonCustodial.Application/Impl/Business/AppManagementService.cs

@ -448,7 +448,7 @@ namespace ATS.NonCustodial.Application.Impl.Business
var data = await _appCaseManagementService.GetCaseSuperviseList(); var data = await _appCaseManagementService.GetCaseSuperviseList();
var caseIds = data.Where(w=> caseIdList.Contains(w.CaseId)).Select(w => w.CaseId).ToList(); var caseIds = data.Where(w => caseIdList.Contains(w.CaseId)).Select(w => w.CaseId).ToList();
//业务申请列表 //业务申请列表
var businessList = await _appBusinessApplicationRepository var businessList = await _appBusinessApplicationRepository
@ -838,24 +838,28 @@ namespace ATS.NonCustodial.Application.Impl.Business
[HttpPost] [HttpPost]
public async Task<IResultOutput> AddAppBusinessAsync(AppBusinessApplicationCreateOrModifyInput input) public async Task<IResultOutput> AddAppBusinessAsync(AppBusinessApplicationCreateOrModifyInput input)
{ {
//根据案件找监管人,找到多个,均发送消息提醒 var result = await _appBusinessApplicationService.CreateOrModify(input);
var currentUserCase = await base.GetCurrentSupervisePersonProcessingCase(User.Id); if (result.Code == 200)
{
//根据案件找监管人,找到多个,均发送消息提醒
var currentUserCase = await base.GetCurrentSupervisePersonProcessingCase(User.Id);
var supervisorList = await _appSupervisorRepository var supervisorList = await _appSupervisorRepository
.AsQueryable(false, true) .AsQueryable(false, true)
.Where(w => w.CaseId == currentUserCase.CaseId) .Where(w => w.CaseId == currentUserCase.CaseId)
.ToListAsync(); .ToListAsync();
var dic = await _appDictionaryService.GetDicByDicId(input.ApplicationTypeId); var dic = await _appDictionaryService.GetDicByDicId(input.ApplicationTypeId);
//var applicationType = await base.GetDictionariesOutput("application_type", "df"); //var applicationType = await base.GetDictionariesOutput("application_type", "df");
foreach (var supervisor in supervisorList) foreach (var supervisor in supervisorList)
{ {
var user = await _appUserRepository.AsQueryable(false, true).Where(w => w.Id == supervisor.SupervisorId).ToListAsync(); var user = await _appUserRepository.AsQueryable(false, true).Where(w => w.Id == supervisor.SupervisorId).ToListAsync();
//发短信给监管人,提醒处理审批 //发短信给监管人,提醒处理审批
await _smsService.SendMessageSMS(MessageAlertTypeEnum.ReviewNotification, user.FirstOrDefault().UserName, user.FirstOrDefault().Phone, DateTime.Now, dic.Name, "", currentUserCase.SupervisedPersonName); await _smsService.SendMessageSMS(MessageAlertTypeEnum.ReviewNotification, user.FirstOrDefault().UserName, user.FirstOrDefault().Phone, DateTime.Now, dic.Name, "", currentUserCase.SupervisedPersonName);
}
} }
return await _appBusinessApplicationService.CreateOrModify(input); return result;
} }
/// <summary> /// <summary>
@ -1181,7 +1185,7 @@ namespace ATS.NonCustodial.Application.Impl.Business
join ev in _appEarlyWarningViewStatisticsRepository.AsQueryable(false, true) on e.Id equals ev.AppEarlyWarningId join ev in _appEarlyWarningViewStatisticsRepository.AsQueryable(false, true) on e.Id equals ev.AppEarlyWarningId
join cm in _appCaseManagementRepository.AsQueryable(false, true) on e.CaseId equals join cm in _appCaseManagementRepository.AsQueryable(false, true) on e.CaseId equals
cm.Id cm.Id
where ev.SubscriberId == User.Id && caseIdList.Contains(e.CaseId) && cm.CaseProgress!=CaseProgressEnum.Closed where ev.SubscriberId == User.Id && caseIdList.Contains(e.CaseId) && cm.CaseProgress != CaseProgressEnum.Closed
select new AppRemindListDto() select new AppRemindListDto()
{ {
Id = e.Id, Id = e.Id,
@ -1197,7 +1201,7 @@ namespace ATS.NonCustodial.Application.Impl.Business
EarlyWarningTypeId = e.EarlyWarningTypeId EarlyWarningTypeId = e.EarlyWarningTypeId
}) })
.WhereIf(input.CheckStatus.HasValue, w => w.CheckStatus == input.CheckStatus) .WhereIf(input.CheckStatus.HasValue, w => w.CheckStatus == input.CheckStatus)
.WhereIf(input.EarlyWarningTypeId.HasValue,w=>w.EarlyWarningTypeId == input.EarlyWarningTypeId) .WhereIf(input.EarlyWarningTypeId.HasValue, w => w.EarlyWarningTypeId == input.EarlyWarningTypeId)
.ToListAsync(); .ToListAsync();
earlyList = earlyList.Distinct((x, y) => x.CaseId == y.CaseId && x.SupervisedPersonId == y.SupervisedPersonId && x.CreatedTime == y.CreatedTime).OrderByDescending(q => q.CreatedTime).ToList(); earlyList = earlyList.Distinct((x, y) => x.CaseId == y.CaseId && x.SupervisedPersonId == y.SupervisedPersonId && x.CreatedTime == y.CreatedTime).OrderByDescending(q => q.CreatedTime).ToList();
if (!input.CheckStatus.HasValue) if (!input.CheckStatus.HasValue)
@ -1318,6 +1322,9 @@ namespace ATS.NonCustodial.Application.Impl.Business
.ToListAsync(); .ToListAsync();
var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList(); var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList();
var data = (await base.GetCurrentUserCaseListAsync()) var data = (await base.GetCurrentUserCaseListAsync())
.Where(W => W.AppCaseManagement != null && W.AppCaseSupervisedPerson != null && W.AppCaseSupervisor != null && W.AppCaseManagement.CaseProgress != CaseProgressEnum.Pending && caseIdList.Contains(W.AppCaseManagement.Id) && caseIdList.Contains(W.AppCaseSupervisedPerson.CaseId) && caseIdList.Contains(W.AppCaseSupervisor.CaseId)) .Where(W => W.AppCaseManagement != null && W.AppCaseSupervisedPerson != null && W.AppCaseSupervisor != null && W.AppCaseManagement.CaseProgress != CaseProgressEnum.Pending && caseIdList.Contains(W.AppCaseManagement.Id) && caseIdList.Contains(W.AppCaseSupervisedPerson.CaseId) && caseIdList.Contains(W.AppCaseSupervisor.CaseId))
.WhereIf(name.NotNull(), w => w.AppCaseSupervisedPerson.SupervisedPersonName!.Contains(name)) .WhereIf(name.NotNull(), w => w.AppCaseSupervisedPerson.SupervisedPersonName!.Contains(name))

20
src/2.services/ATS.NonCustodial.Application/Impl/Business/AppViolationStatisticsService.cs

@ -311,11 +311,14 @@ namespace ATS.NonCustodial.Application.Impl.Business
.Where(w => limits.Contains(w.UnitId.ToString())) .Where(w => limits.Contains(w.UnitId.ToString()))
.ToListAsync(); .ToListAsync();
var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList(); var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList();
var userRole = await _userService.IsAdmin(null);
var supervisorCaseList = await _appCaseSupervisorRepository.AsQueryable(false, true)
.Where(w => w.SupervisorId == User.Id).Select(s => s.CaseId).ToListAsync();
var caseList = await _appCaseManagementRepository.AsQueryable(false, true) var caseList = await _appCaseManagementRepository.AsQueryable(false, true)
.Where(w => caseIdList.Contains(w.Id)) .Where(w => caseIdList.Contains(w.Id))
.WhereIf(input.CaseId.HasValue, w => w.Id == input.CaseId) .WhereIf(input.CaseId.HasValue, w => w.Id == input.CaseId)
.WhereIf(!userRole.IsAdmin, w => supervisorCaseList.Contains(w.Id))
.ToListAsync(); .ToListAsync();
var applicationType = await base.GetDictionariesOutput("early_warning_type", "notClocked"); var applicationType = await base.GetDictionariesOutput("early_warning_type", "notClocked");
@ -379,11 +382,14 @@ namespace ATS.NonCustodial.Application.Impl.Business
.Where(w => limits.Contains(w.UnitId.ToString())) .Where(w => limits.Contains(w.UnitId.ToString()))
.ToListAsync(); .ToListAsync();
var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList(); var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList();
var userRole = await _userService.IsAdmin(null);
var supervisorCaseList = await _appCaseSupervisorRepository.AsQueryable(false, true)
.Where(w => w.SupervisorId == User.Id).Select(s => s.CaseId).ToListAsync();
var caseList = await _appCaseManagementRepository.AsQueryable(false, true) var caseList = await _appCaseManagementRepository.AsQueryable(false, true)
.Where(w => caseIdList.Contains(w.Id)) .Where(w => caseIdList.Contains(w.Id))
.WhereIf(input.CaseId.HasValue, w => w.Id == input.CaseId) .WhereIf(input.CaseId.HasValue, w => w.Id == input.CaseId)
.WhereIf(!userRole.IsAdmin, w => supervisorCaseList.Contains(w.Id))
.ToListAsync(); .ToListAsync();
var applicationType = await base.GetDictionariesOutput("early_warning_type", "LeaveArea"); var applicationType = await base.GetDictionariesOutput("early_warning_type", "LeaveArea");
@ -449,11 +455,14 @@ namespace ATS.NonCustodial.Application.Impl.Business
.Where(w => limits.Contains(w.UnitId.ToString())) .Where(w => limits.Contains(w.UnitId.ToString()))
.ToListAsync(); .ToListAsync();
var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList(); var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList();
var userRole = await _userService.IsAdmin(null);
var supervisorCaseList = await _appCaseSupervisorRepository.AsQueryable(false, true)
.Where(w => w.SupervisorId == User.Id).Select(s => s.CaseId).ToListAsync();
var caseList = await _appCaseManagementRepository.AsQueryable(false, true) var caseList = await _appCaseManagementRepository.AsQueryable(false, true)
.Where(w => caseIdList.Contains(w.Id)) .Where(w => caseIdList.Contains(w.Id))
.WhereIf(input.CaseId.HasValue, w => w.Id == input.CaseId) .WhereIf(input.CaseId.HasValue, w => w.Id == input.CaseId)
.WhereIf(!userRole.IsAdmin, w => supervisorCaseList.Contains(w.Id))
.ToListAsync(); .ToListAsync();
var applicationType = await base.GetDictionariesOutput("early_warning_type", "LeaveArea"); var applicationType = await base.GetDictionariesOutput("early_warning_type", "LeaveArea");
@ -513,11 +522,14 @@ namespace ATS.NonCustodial.Application.Impl.Business
.Where(w => limits.Contains(w.UnitId.ToString())) .Where(w => limits.Contains(w.UnitId.ToString()))
.ToListAsync(); .ToListAsync();
var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList(); var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList();
var userRole = await _userService.IsAdmin(null);
var supervisorCaseList = await _appCaseSupervisorRepository.AsQueryable(false, true)
.Where(w => w.SupervisorId == User.Id).Select(s => s.CaseId).ToListAsync();
var caseList = await _appCaseManagementRepository.AsQueryable(false, true) var caseList = await _appCaseManagementRepository.AsQueryable(false, true)
.Where(w => caseIdList.Contains(w.Id)) .Where(w => caseIdList.Contains(w.Id))
.WhereIf(input.CaseId.HasValue, w => w.Id == input.CaseId) .WhereIf(input.CaseId.HasValue, w => w.Id == input.CaseId)
.WhereIf(!userRole.IsAdmin, w => supervisorCaseList.Contains(w.Id))
.ToListAsync(); .ToListAsync();
var applicationType = await base.GetDictionariesOutput("early_warning_type", "notClocked"); var applicationType = await base.GetDictionariesOutput("early_warning_type", "notClocked");

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

@ -16,6 +16,7 @@ using ATS.NonCustodial.Domain.Shared.Enums;
using ATS.NonCustodial.Domain.Shared.OrmRepositories.Basic.EfCore; using ATS.NonCustodial.Domain.Shared.OrmRepositories.Basic.EfCore;
using ATS.NonCustodial.DynamicApi; using ATS.NonCustodial.DynamicApi;
using ATS.NonCustodial.DynamicApi.Attributes; using ATS.NonCustodial.DynamicApi.Attributes;
using ATS.NonCustodial.Shared.Common.Auth;
using ATS.NonCustodial.Shared.Common.Dtos; using ATS.NonCustodial.Shared.Common.Dtos;
using ATS.NonCustodial.Shared.Common.Enums; using ATS.NonCustodial.Shared.Common.Enums;
using ATS.NonCustodial.Shared.Common.UnifiedResults; using ATS.NonCustodial.Shared.Common.UnifiedResults;
@ -146,10 +147,23 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements
.ToListAsync(); .ToListAsync();
var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList(); var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList();
//当前用户角色
var userRole = await _userService.IsAdmin(null);
var express = await GetExpression(input, _appCaseManagementRepository.AsQueryable(false, true)); var express = await GetExpression(input, _appCaseManagementRepository.AsQueryable(false, true));
// 先应用案件ID过滤条件 // 先应用案件ID过滤条件
express = express.Where(w => caseIdList.Contains(w.Id)); express = express.Where(w => caseIdList.Contains(w.Id));
//非管理员只能看到自己监管的案件
if(!userRole.IsAdmin)
{
var supervisorCaseList = await _appCaseSupervisorRepository.AsQueryable(false, true)
.Where(w => w.SupervisorId == User.Id).Select(s => s.CaseId).ToListAsync();
express= express.Where(w => supervisorCaseList.Contains(w.Id));
}
var rtn = await base.GetPageAsync<AppCaseManagement, AppCaseManagementGetPageInput, AppCaseManagementListDto>(input, express); var rtn = await base.GetPageAsync<AppCaseManagement, AppCaseManagementGetPageInput, AppCaseManagementListDto>(input, express);
var position = await _appDictionaryService.GetDicByDicId(User.PositionId); var position = await _appDictionaryService.GetDicByDicId(User.PositionId);
@ -168,7 +182,7 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements
} }
else if (listDto.CaseProgress == CaseProgressEnum.Examination) else if (listDto.CaseProgress == CaseProgressEnum.Examination)
{ {
if (position.Code == "inquisitor" || User.IsAdmin) if (position.Code == "inquisitor" )
{ {
listDto.ReviewPermission = "3";//显示移送法院 结束案件 listDto.ReviewPermission = "3";//显示移送法院 结束案件
} }
@ -179,7 +193,7 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements
} }
else if (listDto.CaseProgress == CaseProgressEnum.Hear) else if (listDto.CaseProgress == CaseProgressEnum.Hear)
{ {
if (position.Code == "judge" || User.IsAdmin) if (position.Code == "judge")
{ {
listDto.ReviewPermission = "4";//显示查看 结束案件 listDto.ReviewPermission = "4";//显示查看 结束案件
} }
@ -963,22 +977,27 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements
.Where(w => limits.Contains(w.UnitId.ToString())) .Where(w => limits.Contains(w.UnitId.ToString()))
.ToListAsync(); .ToListAsync();
var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList(); var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList();
var userRole = await _userService.IsAdmin(null);
var supervisorCaseList = await _appCaseSupervisorRepository.AsQueryable(false, true)
.Where(w => w.SupervisorId == User.Id).Select(s => s.CaseId).ToListAsync();
var query = _appCaseManagementRepository var query = _appCaseManagementRepository
.AsQueryable(false, true) .AsQueryable(false, true)
.Where(w => w.CaseProgress == CaseProgressEnum.Closed) .Where(w => w.CaseProgress == CaseProgressEnum.Closed && caseIdList.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.CaseBeginTime > input.TimeSearch.BeginTime[0] && w.CaseBeginTime < input.TimeSearch.BeginTime[1].AddDays(1)) .WhereIf(input.TimeSearch.BeginTime.Length == 2, w => w.CaseBeginTime > input.TimeSearch.BeginTime[0] && w.CaseBeginTime < 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))
.Where(w => caseIdList.Contains(w.Id)); .WhereIf(!userRole.IsAdmin , w=>supervisorCaseList.Contains(w.Id));
var pageData = await var pageData = await
query.ProjectTo<CaseStatisticsHandlingTimeListDto>(Mapper.ConfigurationProvider) query.ProjectTo<CaseStatisticsHandlingTimeListDto>(Mapper.ConfigurationProvider)
.PagedAsync(input) .PagedAsync(input)
.ConfigureAwait(false); .ConfigureAwait(false);
var caseIds = pageData.Data.Select(w => w.Id); var caseIds = pageData.Data.Select(w => w.Id);
//涉事人员(被监管人员) //涉事人员(被监管人员)
var personInvolvedList = await _appSupervisedPersonRepository var personInvolvedList = await _appSupervisedPersonRepository
.AsQueryable(false, true) .AsQueryable(false, true)
@ -1012,6 +1031,10 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements
.Where(w => limits.Contains(w.UnitId.ToString())) .Where(w => limits.Contains(w.UnitId.ToString()))
.ToListAsync(); .ToListAsync();
var caseIds = selectLimits.Select(w => w.CaseId).Distinct().ToList(); var caseIds = selectLimits.Select(w => w.CaseId).Distinct().ToList();
var userRole = await _userService.IsAdmin(null);
var supervisorCaseList = await _appCaseSupervisorRepository.AsQueryable(false, true)
.Where(w => w.SupervisorId == User.Id).Select(s => s.CaseId).ToListAsync();
var data = await _appCaseManagementRepository.AsQueryable(false, true) var data = await _appCaseManagementRepository.AsQueryable(false, true)
.Where(w => caseIds.Contains(w.Id)) .Where(w => caseIds.Contains(w.Id))
@ -1019,6 +1042,7 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements
.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())
.WhereIf(!userRole.IsAdmin, w => supervisorCaseList.Contains(w.Id))
.ToListAsync(); .ToListAsync();
var dataGroup = data.GroupBy(w => w.CaseTypeId); var dataGroup = data.GroupBy(w => w.CaseTypeId);

8
src/2.services/ATS.NonCustodial.Application/Impl/Business/MaterialManager/AppFileAccessRecordsService.cs

@ -161,10 +161,14 @@ namespace ATS.NonCustodial.Application.Impl.Business.MaterialManager
.Where(w => limits.Contains(w.UnitId.ToString())) .Where(w => limits.Contains(w.UnitId.ToString()))
.ToListAsync(); .ToListAsync();
var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList(); var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList();
var userRole = await _userService.IsAdmin(null);
var supervisorCaseList = await _appCaseSupervisorRepository.AsQueryable(false, true)
.Where(w => w.SupervisorId == User.Id).Select(s => s.CaseId).ToListAsync();
//获取案件及案件被监管人 //获取案件及案件被监管人
// var caseIds = await (await base.GetCurrentUserCaseListAsync()).Select(w => w.AppCaseManagement.Id).ToListAsync(); // var caseIds = await (await base.GetCurrentUserCaseListAsync()).Select(w => w.AppCaseManagement.Id).ToListAsync();
var SupervisedPersonIds = await base._appSupervisedPersonRepository.AsQueryable(false, true).Where(q => caseIdList.Contains(q.CaseId)).Select(q=>q.SupervisedPersonId).ToListAsync(); var SupervisedPersonIds = await base._appSupervisedPersonRepository.AsQueryable(false, true).Where(q => caseIdList.Contains(q.CaseId))
.WhereIf(!userRole.IsAdmin, w => supervisorCaseList.Contains(w.CaseId)).Select(q=>q.SupervisedPersonId).ToListAsync();
//获取监管人查阅次数 //获取监管人查阅次数
var queryable = await GetExpression(input, _appFileAccessRecordsRepository.AsQueryable(false, true).Where(q=> SupervisedPersonIds.Contains(q.SupervisedPersonId))) var queryable = await GetExpression(input, _appFileAccessRecordsRepository.AsQueryable(false, true).Where(q=> SupervisedPersonIds.Contains(q.SupervisedPersonId)))
.ToListAsync(); .ToListAsync();

10
src/2.services/ATS.NonCustodial.Application/Impl/Logs/OperationLogService.cs

@ -53,7 +53,7 @@ namespace ATS.NonCustodial.Application.Impl.Logs
[HttpPost] [HttpPost]
public async Task<IResultOutput> GetPageAsync(LogGetPageDto input) public async Task<IResultOutput> GetPageAsync(LogGetPageDto input)
{ {
var express = await GetExpression(input, _oprationLogRepository.AsQueryable(false, true).Take(3000)); var express = await GetExpression(input);
var rtn = await base.GetPageAsync<AppOperationLog, LogGetPageDto, OprationLogListOutput>(input, express); var rtn = await base.GetPageAsync<AppOperationLog, LogGetPageDto, OprationLogListOutput>(input, express);
return ResultOutput.Ok(rtn); return ResultOutput.Ok(rtn);
@ -133,15 +133,17 @@ namespace ATS.NonCustodial.Application.Impl.Logs
/// <param name="pageInput"></param> /// <param name="pageInput"></param>
/// <param name="query"></param> /// <param name="query"></param>
/// <returns></returns> /// <returns></returns>
private async Task<IQueryable<AppOperationLog>> GetExpression(LogGetPageDto pageInput, IQueryable<AppOperationLog?> query) private async Task<IQueryable<AppOperationLog>> GetExpression(LogGetPageDto pageInput)
{ {
var userIds = await _appCaseManagementService.GetUserIdListByCurrentUser(); var userIds = await _appCaseManagementService.GetUserIdListByCurrentUser();
query = query var query = _oprationLogRepository.AsQueryable(false, true)
.Where(w => w.CreatedUserId != null && userIds.Contains(w.CreatedUserId.Value)) .Where(w => w.CreatedUserId != null && userIds.Contains(w.CreatedUserId.Value))
.WhereIf(pageInput.OperatorName.NotNull(), w => w.CreatedUserName.Contains(pageInput.OperatorName)) .WhereIf(pageInput.OperatorName.NotNull(), w => w.CreatedUserName.Contains(pageInput.OperatorName))
.WhereIf(pageInput.Device.NotNull(), w => w.Device==pageInput.Device) .WhereIf(pageInput.Device.NotNull(), w => w.Device==pageInput.Device)
.WhereIf(pageInput.NickName.NotNull(), w => w.NickName==pageInput.NickName); .WhereIf(pageInput.NickName.NotNull(), w => w.NickName==pageInput.NickName)
.OrderByDescending(w=>w.CreatedTime)
.Take(3000);
var express = base.GetEntityAddExpression<AppOperationLog, LogGetPageDto, long>(pageInput, query); var express = base.GetEntityAddExpression<AppOperationLog, LogGetPageDto, long>(pageInput, query);

5
src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Admins/SMS/Output/SmsListDto.cs

@ -46,5 +46,10 @@ namespace ATS.NonCustodial.Application.Contracts.Interfaces.Admins.SMS.Output
/// 详细描述 /// 详细描述
/// </summary> /// </summary>
public string? Message { get; set; } public string? Message { get; set; }
/// <summary>
/// 接收人姓名
/// </summary>
public string? Receiver { get; set; }
} }
} }

Loading…
Cancel
Save