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

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.ApplicationTypeId == input.ApplicationTypeId &&
w.ActiveTimePeriodBegin == input.ActiveTimePeriodBegin &&
w.ActiveTimePeriodEnd == input.ActiveTimePeriodEnd
w.ActiveTimePeriodEnd == input.ActiveTimePeriodEnd &&
w.SupervisedPersonId == User.Id
, input.ApplicationTypeId != default);
msg = $"当前申请类型{input.ApplicationTypeId}在当前时间段:{input.ActiveTimePeriodBegin}-{input.ActiveTimePeriodEnd}已存在";
msg = $"当前申请类型{applicationType.Name}在当前时间段:{input.ActiveTimePeriodBegin}-{input.ActiveTimePeriodEnd}已存在";
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));
// 先应用案件ID过滤条件
express = express.Where(w => caseIdList.Contains(w.CaseId));
// 然后再获取分页数据
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);
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;
}

15
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 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
@ -837,6 +837,9 @@ namespace ATS.NonCustodial.Application.Impl.Business
/// <returns></returns>
[HttpPost]
public async Task<IResultOutput> AddAppBusinessAsync(AppBusinessApplicationCreateOrModifyInput input)
{
var result = await _appBusinessApplicationService.CreateOrModify(input);
if (result.Code == 200)
{
//根据案件找监管人,找到多个,均发送消息提醒
var currentUserCase = await base.GetCurrentSupervisePersonProcessingCase(User.Id);
@ -855,7 +858,8 @@ namespace ATS.NonCustodial.Application.Impl.Business
//发短信给监管人,提醒处理审批
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>
@ -1181,7 +1185,7 @@ namespace ATS.NonCustodial.Application.Impl.Business
join ev in _appEarlyWarningViewStatisticsRepository.AsQueryable(false, true) on e.Id equals ev.AppEarlyWarningId
join cm in _appCaseManagementRepository.AsQueryable(false, true) on e.CaseId equals
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()
{
Id = e.Id,
@ -1197,7 +1201,7 @@ namespace ATS.NonCustodial.Application.Impl.Business
EarlyWarningTypeId = e.EarlyWarningTypeId
})
.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();
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)
@ -1318,6 +1322,9 @@ namespace ATS.NonCustodial.Application.Impl.Business
.ToListAsync();
var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList();
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))
.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()))
.ToListAsync();
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)
.Where(w => caseIdList.Contains(w.Id))
.WhereIf(input.CaseId.HasValue, w => w.Id == input.CaseId)
.WhereIf(!userRole.IsAdmin, w => supervisorCaseList.Contains(w.Id))
.ToListAsync();
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()))
.ToListAsync();
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)
.Where(w => caseIdList.Contains(w.Id))
.WhereIf(input.CaseId.HasValue, w => w.Id == input.CaseId)
.WhereIf(!userRole.IsAdmin, w => supervisorCaseList.Contains(w.Id))
.ToListAsync();
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()))
.ToListAsync();
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)
.Where(w => caseIdList.Contains(w.Id))
.WhereIf(input.CaseId.HasValue, w => w.Id == input.CaseId)
.WhereIf(!userRole.IsAdmin, w => supervisorCaseList.Contains(w.Id))
.ToListAsync();
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()))
.ToListAsync();
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)
.Where(w => caseIdList.Contains(w.Id))
.WhereIf(input.CaseId.HasValue, w => w.Id == input.CaseId)
.WhereIf(!userRole.IsAdmin, w => supervisorCaseList.Contains(w.Id))
.ToListAsync();
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.DynamicApi;
using ATS.NonCustodial.DynamicApi.Attributes;
using ATS.NonCustodial.Shared.Common.Auth;
using ATS.NonCustodial.Shared.Common.Dtos;
using ATS.NonCustodial.Shared.Common.Enums;
using ATS.NonCustodial.Shared.Common.UnifiedResults;
@ -146,10 +147,23 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements
.ToListAsync();
var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList();
//当前用户角色
var userRole = await _userService.IsAdmin(null);
var express = await GetExpression(input, _appCaseManagementRepository.AsQueryable(false, true));
// 先应用案件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 position = await _appDictionaryService.GetDicByDicId(User.PositionId);
@ -168,7 +182,7 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements
}
else if (listDto.CaseProgress == CaseProgressEnum.Examination)
{
if (position.Code == "inquisitor" || User.IsAdmin)
if (position.Code == "inquisitor" )
{
listDto.ReviewPermission = "3";//显示移送法院 结束案件
}
@ -179,7 +193,7 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements
}
else if (listDto.CaseProgress == CaseProgressEnum.Hear)
{
if (position.Code == "judge" || User.IsAdmin)
if (position.Code == "judge")
{
listDto.ReviewPermission = "4";//显示查看 结束案件
}
@ -963,22 +977,27 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements
.Where(w => limits.Contains(w.UnitId.ToString()))
.ToListAsync();
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
.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.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))
.Where(w => caseIdList.Contains(w.Id));
.WhereIf(!userRole.IsAdmin , w=>supervisorCaseList.Contains(w.Id));
var pageData = await
query.ProjectTo<CaseStatisticsHandlingTimeListDto>(Mapper.ConfigurationProvider)
.PagedAsync(input)
.ConfigureAwait(false);
var caseIds = pageData.Data.Select(w => w.Id);
//涉事人员(被监管人员)
var personInvolvedList = await _appSupervisedPersonRepository
.AsQueryable(false, true)
@ -1012,6 +1031,10 @@ namespace ATS.NonCustodial.Application.Impl.Business.CaseManagements
.Where(w => limits.Contains(w.UnitId.ToString()))
.ToListAsync();
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)
.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.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(!userRole.IsAdmin, w => supervisorCaseList.Contains(w.Id))
.ToListAsync();
var dataGroup = data.GroupBy(w => w.CaseTypeId);

6
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()))
.ToListAsync();
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 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)))
.ToListAsync();

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

@ -53,7 +53,7 @@ namespace ATS.NonCustodial.Application.Impl.Logs
[HttpPost]
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);
return ResultOutput.Ok(rtn);
@ -133,15 +133,17 @@ namespace ATS.NonCustodial.Application.Impl.Logs
/// <param name="pageInput"></param>
/// <param name="query"></param>
/// <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();
query = query
var query = _oprationLogRepository.AsQueryable(false, true)
.Where(w => w.CreatedUserId != null && userIds.Contains(w.CreatedUserId.Value))
.WhereIf(pageInput.OperatorName.NotNull(), w => w.CreatedUserName.Contains(pageInput.OperatorName))
.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);

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>
public string? Message { get; set; }
/// <summary>
/// 接收人姓名
/// </summary>
public string? Receiver { get; set; }
}
}

Loading…
Cancel
Save