DESKTOP-G961P6V\Zhh 2 years ago
parent
commit
65258287c4
  1. 11
      src/Shentun.Peis.Application.Contracts/MyUser/OrganizationUnitIdIuputDto.cs
  2. 15
      src/Shentun.Peis.Application.Contracts/SysParmValues/SysParmValueInputDto.cs
  3. 4
      src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/PublicPatientRegisterNoInputDto.cs
  4. 38
      src/Shentun.Peis.Application/MyUser/MyUserAppService.cs
  5. 3
      src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs
  6. 92
      src/Shentun.Peis.Application/PeisReports/PeisReportAppService.cs
  7. 49
      src/Shentun.Peis.Application/RegisterCheckPictures/RegisterCheckPictureAppService.cs
  8. 35
      src/Shentun.Peis.Application/SysParmValues/SysParmValueAppService.cs
  9. 23
      src/Shentun.Peis.Application/ThirdPartyPublicInterfaces/ThirdPartyPublicInterfaceAppService.cs
  10. 3
      src/Shentun.Peis.Domain/OrganizationUnits/PeisOrganizationUnitManager.cs

11
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; }
}
}

15
src/Shentun.Peis.Application.Contracts/SysParmValues/SysParmValueInputDto.cs

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.SysParmValues
{
public class SysParmValueInputDto
{
/// <summary>
/// 系统参数ID
/// </summary>
public string SysParmId { get; set; }
}
}

4
src/Shentun.Peis.Application.Contracts/ThirdPartyPublicInterfaces/PublicPatientRegisterNoInputDto.cs

@ -7,8 +7,8 @@ namespace Shentun.Peis.ThirdPartyPublicInterfaces
public class PublicPatientRegisterNoInputDto
{
/// <summary>
/// 体检人员条码
/// 体检
/// </summary>
public string PatientRegisterNo { get; set; }
public List<string> PatientRegisterNos { get; set; }
}
}

38
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<OrganizationUnit, Guid> _organizationUnitRepository;
//private readonly IRepository<IdentityUserOrganizationUnit> _identityUserOrganizationUnitRepository;
private readonly IRepository<IdentityUserOrganizationUnit> _identityUserOrganizationUnitRepository;
private readonly CurrentUser _currentUser;
private readonly IDistributedCache<IdentityUser, Guid> _userCache;
@ -75,7 +75,7 @@ namespace Shentun.Peis.MyUser
PeisOrganizationUnitManager peisOrganizationUnitManager,
IHttpClientFactory httpClientFactory,
IConfiguration configuration,
//IRepository<IdentityUserOrganizationUnit> identityUserOrganizationUnitRepository,
IRepository<IdentityUserOrganizationUnit> identityUserOrganizationUnitRepository,
CurrentUser currentUser,
IDistributedCache<IdentityUser, Guid> 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);
}
/// <summary>
/// 获取列表 根据科室查询
/// 获取列表 根据科室查询 不传科室查所有
/// </summary>
/// <param name="OrganizationUnitId">科室ID</param>
/// <param name="input"></param>
/// <returns></returns>
[Authorize(PeisPermissions.Users.Default)]
[HttpGet("api/identity/users/getlistinorganizationunit")]
public async Task<List<IdentityUserWithExtensionDto>> GetListInOrganizationUnitAsync(Guid OrganizationUnitId)
[HttpPost("api/identity/users/getlistinorganizationunit")]
public async Task<List<IdentityUserWithExtensionDto>> GetListInOrganizationUnitAsync(OrganizationUnitIdIuputDto input)
{
List<IdentityUser> userList = new List<IdentityUser>();
var identityUserOrganizationUnitList = await _identityUserOrganizationUnitRepository.GetListAsync();
if (input.OrganizationUnitId != null && input.OrganizationUnitId != Guid.Empty)
{
if (OrganizationUnitId == Guid.Empty)
List<Guid> 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<Guid> 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<string>("user_sign"),
UserPhoto = s.GetProperty<string>("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();
@ -581,8 +589,8 @@ namespace Shentun.Peis.MyUser
var verifyResult = await _userManager.CheckPasswordAsync(user, input.PassWord);
if (verifyResult)
{
var organizationUnitList = await _organizationUnitRepository.GetListAsync();
var PeisId = await _peisOrganizationUnitManager.GetPeisIdAsync(organizationUnitList, user.Id);
var PeisId = await _peisOrganizationUnitManager.GetPeisIdAsync(user.Id);
if (user.IsActive == false)
{

3
src/Shentun.Peis.Application/PatientRegisters/PatientRegisterAppService.cs

@ -1751,8 +1751,7 @@ namespace Shentun.Peis.PatientRegisters
if (input.CompleteFlag != null
&& input.CompleteFlag != PatientRegisterCompleteFlag.ItemCheckUnSumCheck
&& input.CompleteFlag != PatientRegisterCompleteFlag.PartCheck)
&& input.CompleteFlag != PatientRegisterCompleteFlag.ItemCheckUnSumCheck)
{
sumquery = sumquery.Where(m => m.a.CompleteFlag == input.CompleteFlag);
}

92
src/Shentun.Peis.Application/PeisReports/PeisReportAppService.cs

@ -4,6 +4,7 @@ using Microsoft.EntityFrameworkCore;
using Shentun.Peis.CustomerOrgs;
using Shentun.Peis.Enums;
using Shentun.Peis.Models;
using Shentun.Peis.PatientRegisters;
using Shentun.Peis.SampleTypes;
using System;
using System.Collections.Generic;
@ -78,6 +79,9 @@ namespace Shentun.Peis.PeisReports
var query = from a in await _patientRegisterRepository.GetQueryableAsync()
join b in await _patientRepository.GetQueryableAsync() on a.PatientId equals b.Id into bb
from ab in bb.DefaultIfEmpty()
join registerCheck in await _registerCheckRepository.GetQueryableAsync() on a.Id equals registerCheck.PatientRegisterId
join registerAsbitem in await _registerAsbitemRepository.GetQueryableAsync() on registerCheck.Id equals registerAsbitem.RegisterCheckId
join asbitem in await _asbitemRepository.GetQueryableAsync() on registerAsbitem.AsbitemId equals asbitem.Id
join c in await _customerOrgGroupRepository.GetQueryableAsync() on a.CustomerOrgGroupId equals c.Id into cc
from ac in cc.DefaultIfEmpty()
join d in await _medicalPackageRepository.GetQueryableAsync() on a.MedicalPackageId equals d.Id into dd
@ -111,6 +115,8 @@ namespace Shentun.Peis.PeisReports
a.PersonnelTypeId,
a.IsUpload
},
RegisterCheckCompleteFlag = registerCheck.CompleteFlag,
IsCheck = asbitem.IsCheck,
ab = new { ab.IdNo, ab.Address, ab.PatientNo, ab.MobileTelephone, ab.Telephone, ab.Email, ab.DisplayName },
ac = new { ac.DisplayName },
ad = new { ad.DisplayName },
@ -225,7 +231,7 @@ namespace Shentun.Peis.PeisReports
sumquery = sumquery.Where(m => m.ab.MobileTelephone == input.phone || m.ab.Telephone == input.phone);
}
if (input.CompleteFlag != null)
if (input.CompleteFlag != null && input.CompleteFlag != PatientRegisterCompleteFlag.ItemCheckUnSumCheck)
{
sumquery = sumquery.Where(m => m.a.CompleteFlag == input.CompleteFlag);
}
@ -272,36 +278,70 @@ namespace Shentun.Peis.PeisReports
}
int totalCount = sumquery.Count();
var sumqueryGroup = sumquery.ToList().GroupBy(g => g.a.Id);
List<GetPatientRegisterReportDto> entlist = new List<GetPatientRegisterReportDto>();
var entlist = sumquery.Select(s => new GetPatientRegisterReportDto
foreach (var s in sumqueryGroup.OrderBy(o => o.Key))
{
Address = s.ab.Address,
PatientName = s.a.PatientName,
Age = s.a.Age,
BirthDate = DataHelper.ConversionDateToString(s.a.BirthDate),
CompleteFlag = s.a.CompleteFlag,
CustomerOrgGroupName = s.ac.DisplayName,
bool IsDisplay = false;
if (input.CompleteFlag == PatientRegisterCompleteFlag.ItemCheckUnSumCheck)
{
if (s.Where(m => m.RegisterCheckCompleteFlag != RegisterCheckCompleteFlag.Checked && m.IsCheck == 'Y').Count() == 0
&& s.FirstOrDefault().a.CompleteFlag != PatientRegisterCompleteFlag.SumCheck)
{
IsDisplay = true;
}
else
{
IsDisplay = false;
}
}
else
{
IsDisplay = true;
}
if (IsDisplay)
{
entlist.Add(new GetPatientRegisterReportDto
{
Address = s.FirstOrDefault().ab.Address,
PatientName = s.FirstOrDefault().a.PatientName,
Age = s.FirstOrDefault().a.Age,
BirthDate = DataHelper.ConversionDateToString(s.FirstOrDefault().a.BirthDate),
CompleteFlag = s.FirstOrDefault().a.CompleteFlag,
CustomerOrgGroupName = s.FirstOrDefault().ac.DisplayName,
//CustomerOrgName = _cacheService.GetTopCustomerOrgAsync(s.a.CustomerOrgId).Result.DisplayName,
CustomerOrgName = _cacheService.GetTopCustomerOrgNameAsync(s.a.CustomerOrgId).Result,
DepartmentName = _cacheService.GetCustomerOrgNameAsync(s.a.CustomerOrgId).Result,
Email = s.ab.Email,
IdNo = s.ab.IdNo,
IsAudit = s.a.IsAudit,
IsReportPrint = s.a.ReportPrintTimes > 0 ? 'Y' : 'N',
MedicalPackageName = s.ad.DisplayName,
MedicalTypeName = s.ae.DisplayName,
MobileTelephone = s.ab.MobileTelephone,
PatientNo = s.ab.PatientNo,
PatientRegisterNo = s.a.PatientRegisterNo,
PersonnelTypeName = s.af.DisplayName,
SexName = s.ag.DisplayName,
Telephone = s.ab.Telephone,
PatientRegisterId = s.a.Id
}).Skip(input.SkipCount * input.MaxResultCount).Take(input.MaxResultCount).ToList();
return new PagedResultDto<GetPatientRegisterReportDto>(totalCount, entlist); ;
CustomerOrgName = _cacheService.GetTopCustomerOrgNameAsync(s.FirstOrDefault().a.CustomerOrgId).Result,
DepartmentName = _cacheService.GetCustomerOrgNameAsync(s.FirstOrDefault().a.CustomerOrgId).Result,
Email = s.FirstOrDefault().ab.Email,
IdNo = s.FirstOrDefault().ab.IdNo,
IsAudit = s.FirstOrDefault().a.IsAudit,
IsReportPrint = s.FirstOrDefault().a.ReportPrintTimes > 0 ? 'Y' : 'N',
MedicalPackageName = s.FirstOrDefault().ad.DisplayName,
MedicalTypeName = s.FirstOrDefault().ae.DisplayName,
MobileTelephone = s.FirstOrDefault().ab.MobileTelephone,
PatientNo = s.FirstOrDefault().ab.PatientNo,
PatientRegisterNo = s.FirstOrDefault().a.PatientRegisterNo,
PersonnelTypeName = s.FirstOrDefault().af.DisplayName,
SexName = s.FirstOrDefault().ag.DisplayName,
Telephone = s.FirstOrDefault().ab.Telephone,
PatientRegisterId = s.FirstOrDefault().a.Id
});
}
}
int totalCount = entlist.Count;
entlist = entlist.Skip(input.SkipCount * input.MaxResultCount).Take(input.MaxResultCount).ToList();
return new PagedResultDto<GetPatientRegisterReportDto>(totalCount, entlist);
}

49
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<IdentityUser, Guid> _userRepository;
private readonly IRepository<RegisterCheckPicture, Guid> _registerCheckPictureRepository;
private readonly IRepository<RegisterCheckAsbitem, Guid> _registerAsbitemRepository;
private readonly IRepository<RegisterCheck, Guid> _registerCheckRepository;
private readonly IRepository<PatientRegister, Guid> _patientRegisterRepository;
private readonly RegisterCheckPictureManager _registerCheckPictureManager;
private readonly IConfiguration _configuration;
@ -34,13 +37,17 @@ namespace Shentun.Peis.RegisterCheckPictures
RegisterCheckPictureManager registerCheckPictureManager,
IRepository<IdentityUser, Guid> userRepository,
IRepository<RegisterCheckAsbitem, Guid> registerAsbitemRepository,
IConfiguration configuration)
IConfiguration configuration,
IRepository<RegisterCheck, Guid> registerCheckRepository,
IRepository<PatientRegister, Guid> patientRegisterRepository)
{
_registerCheckPictureRepository = registerCheckPictureRepository;
_registerCheckPictureManager = registerCheckPictureManager;
_userRepository = userRepository;
_registerAsbitemRepository = registerAsbitemRepository;
_configuration = configuration;
_registerCheckRepository = registerCheckRepository;
_patientRegisterRepository = patientRegisterRepository;
}
/// <summary>
@ -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<RegisterCheckPicture> entlist_insert = new List<RegisterCheckPicture>();
@ -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

35
src/Shentun.Peis.Application/SysParmValues/SysParmValueAppService.cs

@ -3,6 +3,7 @@ using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Shentun.Peis.Items;
using Shentun.Peis.Models;
using Shentun.Peis.OrganizationUnits;
using Shentun.Peis.SysParmTypes;
using Shentun.Peis.Units;
using System;
@ -30,31 +31,39 @@ namespace Shentun.Peis.SysParmValues
private readonly IRepository<SysParm> _sysParmRepository;
private readonly IRepository<IdentityUser, Guid> _userRepository;
private readonly SysParmValueManager _manager;
private readonly ICurrentUser _currentUser;
private readonly PeisOrganizationUnitManager _peisOrganizationUnitManager;
public SysParmValueAppService(
IRepository<SysParmValue> repository,
IRepository<SysParm> sysParmRepository,
IRepository<IdentityUser, Guid> userRepository,
SysParmValueManager manager)
SysParmValueManager manager,
ICurrentUser currentUser,
PeisOrganizationUnitManager peisOrganizationUnitManager)
{
this._repository = repository;
this._sysParmRepository = sysParmRepository;
this._userRepository = userRepository;
this._manager = manager;
_currentUser = currentUser;
_peisOrganizationUnitManager = peisOrganizationUnitManager;
}
///// <summary>
///// 查询值内容 根据系统参数ID 跟组织ID
///// </summary>
///// <param name="SysParmId"></param>
///// <param name="OrganizationUnitId"></param>
///// <returns></returns>
//[RemoteService(false)]
//public async Task<SysParmValueDto> GetAsync(string SysParmId, Guid OrganizationUnitId)
//{
// var entity = await _repository.GetAsync(m => m.SysParmId == SysParmId && m.OrganizationUnitId == OrganizationUnitId);
// return ObjectMapper.Map<SysParmValue, SysParmValueDto>(entity);
//}
/// <summary>
/// 查询系统参数值 根据参数ID 跟体检中心
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/SysParmValue/GetSysParmValueBySysParmId")]
public async Task<string> GetSysParmValueBySysParmIdAsync(SysParmValueInputDto input)
{
var userId = _currentUser.Id.Value;
var medicalCenterId = await _peisOrganizationUnitManager.GetPeisIdAsync(userId);
string sysParmValue = await _manager.GetSysParmValueAsync(medicalCenterId != null ? medicalCenterId.Value : Guid.Empty, input.SysParmId);
return sysParmValue;
}
///// <summary>

23
src/Shentun.Peis.Application/ThirdPartyPublicInterfaces/ThirdPartyPublicInterfaceAppService.cs

@ -74,20 +74,27 @@ namespace Shentun.Peis.ThirdPartyPublicInterfaces
/// <returns></returns>
[Authorize(PeisPermissions.Third.Default)]
[HttpPost("api/Third/ThirdPartyPublicInterface/GetBasicInformationOfMedicalExaminationPersonnel")]
public async Task<BasicInformationOfMedicalExaminationPersonnelDto> GetBasicInformationOfMedicalExaminationPersonnelAsync(PublicPatientRegisterNoInputDto input)
public async Task<List<BasicInformationOfMedicalExaminationPersonnelDto>> GetBasicInformationOfMedicalExaminationPersonnelAsync(PublicPatientRegisterNoInputDto input)
{
if (input == null)
{
throw new UserFriendlyException($"请求参数错误");
}
var result = new BasicInformationOfMedicalExaminationPersonnelDto();
if (!input.PatientRegisterNos.Any())
throw new UserFriendlyException($"体检编号不能为空");
var listDto = new List<BasicInformationOfMedicalExaminationPersonnelDto>();
var patientRegisterEnt = (await _patientRegisterRepository.GetQueryableAsync()).Include(x => x.Patient).FirstOrDefault(m => m.PatientRegisterNo == input.PatientRegisterNo);
if (patientRegisterEnt != null)
var patientRegisterList = (await _patientRegisterRepository.GetQueryableAsync()).Include(x => x.Patient)
.Where(m => input.PatientRegisterNos.Contains(m.PatientRegisterNo)
&& m.CompleteFlag == PatientRegisterCompleteFlag.SumCheck).ToList();
if (patientRegisterList.Any())
{
foreach (var patientRegisterEnt in patientRegisterList)
{
//基础信息
result = new BasicInformationOfMedicalExaminationPersonnelDto
var result = new BasicInformationOfMedicalExaminationPersonnelDto
{
BirthDate = patientRegisterEnt.BirthDate != null ? patientRegisterEnt.BirthDate.Value.ToString("yyyy-MM-dd HH:mm:ss") : "",
PatientRegisterNo = patientRegisterEnt.PatientRegisterNo,
@ -183,13 +190,15 @@ namespace Shentun.Peis.ThirdPartyPublicInterfaces
}).ToList()
}).ToList();
listDto.Add(result);
}
}
else
{
throw new UserFriendlyException($"条码号不正确");
throw new UserFriendlyException($"体检编号不正确");
}
return result;
return listDto;
}

3
src/Shentun.Peis.Domain/OrganizationUnits/PeisOrganizationUnitManager.cs

@ -44,10 +44,9 @@ namespace Shentun.Peis.OrganizationUnits
/// <summary>
/// 获取当前用户的体检中心ID
/// </summary>
/// <param name="organizationUnitList"></param>
/// <param name="UserId"></param>
/// <returns></returns>
public async Task<Guid?> GetPeisIdAsync(List<OrganizationUnit> organizationUnitList, Guid UserId)
public async Task<Guid?> GetPeisIdAsync(Guid UserId)
{
//当前用户的部门ID
var userOrganizationUnit = (await _identityUserOrganizationUnitRepository.GetListAsync(m => m.UserId == UserId)).FirstOrDefault();

Loading…
Cancel
Save