From b404e035fe98a1f2c24517f8cf0b0283afa6105f Mon Sep 17 00:00:00 2001 From: wxd <123@qq.com> Date: Thu, 16 May 2024 18:50:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BC=E5=9B=BE=E3=80=81=E5=88=A0=E5=9B=BE?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MyUser/OrganizationUnitIdIuputDto.cs | 11 ++++ .../MyUser/MyUserAppService.cs | 36 ++++++++----- .../RegisterCheckPictureAppService.cs | 51 +++++++++++++++---- 3 files changed, 75 insertions(+), 23 deletions(-) create mode 100644 src/Shentun.Peis.Application.Contracts/MyUser/OrganizationUnitIdIuputDto.cs diff --git a/src/Shentun.Peis.Application.Contracts/MyUser/OrganizationUnitIdIuputDto.cs b/src/Shentun.Peis.Application.Contracts/MyUser/OrganizationUnitIdIuputDto.cs new file mode 100644 index 0000000..4c1d5c0 --- /dev/null +++ b/src/Shentun.Peis.Application.Contracts/MyUser/OrganizationUnitIdIuputDto.cs @@ -0,0 +1,11 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace Shentun.Peis.MyUser +{ + public class OrganizationUnitIdIuputDto + { + public Guid? OrganizationUnitId { get; set; } + } +} diff --git a/src/Shentun.Peis.Application/MyUser/MyUserAppService.cs b/src/Shentun.Peis.Application/MyUser/MyUserAppService.cs index 99be9c7..6c3a2d9 100644 --- a/src/Shentun.Peis.Application/MyUser/MyUserAppService.cs +++ b/src/Shentun.Peis.Application/MyUser/MyUserAppService.cs @@ -59,7 +59,7 @@ namespace Shentun.Peis.MyUser private readonly IHttpClientFactory _httpClientFactory; private readonly IConfiguration _configuration; private readonly IRepository _organizationUnitRepository; - //private readonly IRepository _identityUserOrganizationUnitRepository; + private readonly IRepository _identityUserOrganizationUnitRepository; private readonly CurrentUser _currentUser; private readonly IDistributedCache _userCache; @@ -75,7 +75,7 @@ namespace Shentun.Peis.MyUser PeisOrganizationUnitManager peisOrganizationUnitManager, IHttpClientFactory httpClientFactory, IConfiguration configuration, - //IRepository identityUserOrganizationUnitRepository, + IRepository identityUserOrganizationUnitRepository, CurrentUser currentUser, IDistributedCache userCache) : base(userManager, @@ -93,7 +93,7 @@ namespace Shentun.Peis.MyUser this._httpClientFactory = httpClientFactory; this._configuration = configuration; this._organizationUnitRepository = organizationUnitRepository; - // this._identityUserOrganizationUnitRepository = identityUserOrganizationUnitRepository; + this._identityUserOrganizationUnitRepository = identityUserOrganizationUnitRepository; this._currentUser = currentUser; _userCache = userCache; } @@ -261,21 +261,29 @@ namespace Shentun.Peis.MyUser return base.GetListAsync(input); } /// - /// 获取列表 根据科室查询 - /// - /// 科室ID + /// 获取列表 根据科室查询 不传科室查所有 + /// + /// /// [Authorize(PeisPermissions.Users.Default)] - [HttpGet("api/identity/users/getlistinorganizationunit")] - public async Task> GetListInOrganizationUnitAsync(Guid OrganizationUnitId) + [HttpPost("api/identity/users/getlistinorganizationunit")] + public async Task> GetListInOrganizationUnitAsync(OrganizationUnitIdIuputDto input) { - if (OrganizationUnitId == Guid.Empty) + + List userList = new List(); + + var identityUserOrganizationUnitList = await _identityUserOrganizationUnitRepository.GetListAsync(); + + if (input.OrganizationUnitId != null && input.OrganizationUnitId != Guid.Empty) + { + List organizationUnitIds = await _peisOrganizationUnitManager.GetOrganizationUnitChildIds(input.OrganizationUnitId.Value); + userList = await _userRepository.GetUsersInOrganizationsListAsync(organizationUnitIds); + } + else { - throw new UserFriendlyException("参数有误"); + userList = await _identityUserRepository.GetListAsync(m => m.IsDeleted == false); } - List organizationUnitIds = await _peisOrganizationUnitManager.GetOrganizationUnitChildIds(OrganizationUnitId); - var entlist = await _userRepository.GetUsersInOrganizationsListAsync(organizationUnitIds); - var entlistdto = entlist.Select(s => new IdentityUserWithExtensionDto + var entlistdto = userList.Select(s => new IdentityUserWithExtensionDto { UserSign = s.GetProperty("user_sign"), UserPhoto = s.GetProperty("user_photo"), @@ -300,7 +308,7 @@ namespace Shentun.Peis.MyUser Surname = s.Surname, TenantId = s.TenantId, UserName = s.UserName, - OrganizationUnitId = OrganizationUnitId, + OrganizationUnitId = identityUserOrganizationUnitList.FirstOrDefault(m => m.UserId == s.Id).OrganizationUnitId, SimpleCode = LanguageConverter.GetPYSimpleCode(s.Surname) }).ToList(); diff --git a/src/Shentun.Peis.Application/RegisterCheckPictures/RegisterCheckPictureAppService.cs b/src/Shentun.Peis.Application/RegisterCheckPictures/RegisterCheckPictureAppService.cs index 1740d79..479731d 100644 --- a/src/Shentun.Peis.Application/RegisterCheckPictures/RegisterCheckPictureAppService.cs +++ b/src/Shentun.Peis.Application/RegisterCheckPictures/RegisterCheckPictureAppService.cs @@ -2,6 +2,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; +using Shentun.Peis.Enums; using Shentun.Peis.GuideTypes; using Shentun.Peis.Models; using System; @@ -26,6 +27,8 @@ namespace Shentun.Peis.RegisterCheckPictures private readonly IRepository _userRepository; private readonly IRepository _registerCheckPictureRepository; private readonly IRepository _registerAsbitemRepository; + private readonly IRepository _registerCheckRepository; + private readonly IRepository _patientRegisterRepository; private readonly RegisterCheckPictureManager _registerCheckPictureManager; private readonly IConfiguration _configuration; @@ -34,13 +37,17 @@ namespace Shentun.Peis.RegisterCheckPictures RegisterCheckPictureManager registerCheckPictureManager, IRepository userRepository, IRepository registerAsbitemRepository, - IConfiguration configuration) + IConfiguration configuration, + IRepository registerCheckRepository, + IRepository patientRegisterRepository) { _registerCheckPictureRepository = registerCheckPictureRepository; _registerCheckPictureManager = registerCheckPictureManager; _userRepository = userRepository; _registerAsbitemRepository = registerAsbitemRepository; _configuration = configuration; + _registerCheckRepository = registerCheckRepository; + _patientRegisterRepository = patientRegisterRepository; } /// @@ -148,15 +155,21 @@ namespace Shentun.Peis.RegisterCheckPictures string PatientRegisterId = ""; - var registerAsbitemEntity = await _registerAsbitemRepository.FirstOrDefaultAsync(m => m.RegisterCheckId == input.RegisterCheckId); - if (registerAsbitemEntity != null) - { - PatientRegisterId = registerAsbitemEntity.PatientRegisterId.ToString(); - } - else - { + var patientRegisterCompleteFlag = (from patientRegister in await _patientRegisterRepository.GetQueryableAsync() + join registerCheck in await _registerCheckRepository.GetQueryableAsync() on patientRegister.Id equals registerCheck.PatientRegisterId + where registerCheck.Id == input.RegisterCheckId + select new + { + CompleteFlag = patientRegister.CompleteFlag + }).ToList(); + + if (patientRegisterCompleteFlag.Count == 0) throw new UserFriendlyException("体检人员不存在"); - } + + if (patientRegisterCompleteFlag.FirstOrDefault().CompleteFlag == PatientRegisterCompleteFlag.PreRegistration) + throw new UserFriendlyException("预登记人员不能导入图片"); + if (patientRegisterCompleteFlag.FirstOrDefault().CompleteFlag == PatientRegisterCompleteFlag.SumCheck) + throw new UserFriendlyException("已总检人员不能导入图片"); List entlist_insert = new List(); @@ -297,6 +310,26 @@ namespace Shentun.Peis.RegisterCheckPictures { if (ids.Any()) { + var patientRegisterCompleteFlag = (from patientRegister in await _patientRegisterRepository.GetQueryableAsync() + join registerCheck in await _registerCheckRepository.GetQueryableAsync() + on patientRegister.Id equals registerCheck.PatientRegisterId + join registerCheckPicture in await _registerCheckPictureRepository.GetQueryableAsync() + on registerCheck.Id equals registerCheckPicture.RegisterCheckId + where ids.Contains(registerCheckPicture.Id) + select new + { + CompleteFlag = patientRegister.CompleteFlag + }).ToList(); + + if (patientRegisterCompleteFlag.Count == 0) + throw new UserFriendlyException("Id不存在"); + + if (patientRegisterCompleteFlag.FirstOrDefault().CompleteFlag == PatientRegisterCompleteFlag.SumCheck) + { + throw new UserFriendlyException("已总检人员不能删除图片"); + } + + await _registerCheckPictureRepository.DeleteAsync(m => ids.Contains(m.Id)); } else