From 6a9e7f32563ab3caa385e4d4e7171b4e71b74b74 Mon Sep 17 00:00:00 2001 From: wxd <123@qq.com> Date: Tue, 28 May 2024 22:53:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OccupationalDiseaseWithDetailInputDto.cs | 4 +-- .../OccupationalDiseases/PatientPoisonDto.cs | 5 +++ .../OccupationalDiseaseAppService.cs | 36 +++++++++++++------ 3 files changed, 32 insertions(+), 13 deletions(-) diff --git a/src/Shentun.Peis.Application.Contracts/OccupationalDiseases/OccupationalDiseaseWithDetailInputDto.cs b/src/Shentun.Peis.Application.Contracts/OccupationalDiseases/OccupationalDiseaseWithDetailInputDto.cs index 65c6dfee..f8aee49e 100644 --- a/src/Shentun.Peis.Application.Contracts/OccupationalDiseases/OccupationalDiseaseWithDetailInputDto.cs +++ b/src/Shentun.Peis.Application.Contracts/OccupationalDiseases/OccupationalDiseaseWithDetailInputDto.cs @@ -228,9 +228,9 @@ namespace Shentun.Peis.OccupationalDiseases public Guid PoisonId { get; set; } /// - /// 毒害因素ID + /// 职业体检结论ID /// - public Guid OccupationalAbnormalId { get; set; } + public Guid? OccupationalAbnormalId { get; set; } } public class PatientOccupationalHistoryInputDto diff --git a/src/Shentun.Peis.Application.Contracts/OccupationalDiseases/PatientPoisonDto.cs b/src/Shentun.Peis.Application.Contracts/OccupationalDiseases/PatientPoisonDto.cs index fb2cd9f0..6106ae82 100644 --- a/src/Shentun.Peis.Application.Contracts/OccupationalDiseases/PatientPoisonDto.cs +++ b/src/Shentun.Peis.Application.Contracts/OccupationalDiseases/PatientPoisonDto.cs @@ -9,6 +9,11 @@ namespace Shentun.Peis.OccupationalDiseases { public Guid PoisonId { get; set; } + /// + /// 毒害因素 + /// + public string PoisonName { get; set; } + /// /// 职业体检结论ID /// diff --git a/src/Shentun.Peis.Application/OccupationalDiseases/OccupationalDiseaseAppService.cs b/src/Shentun.Peis.Application/OccupationalDiseases/OccupationalDiseaseAppService.cs index 7ce6b405..c54a1d9e 100644 --- a/src/Shentun.Peis.Application/OccupationalDiseases/OccupationalDiseaseAppService.cs +++ b/src/Shentun.Peis.Application/OccupationalDiseases/OccupationalDiseaseAppService.cs @@ -37,6 +37,7 @@ namespace Shentun.Peis.OccupationalDiseases private readonly PatientOccupationalDiseaseManager _patientOccupationalDiseaseManager; private readonly CacheService _cacheService; private readonly IRepository _symptomRepository; + private readonly IRepository _poisonRepository; private readonly IRepository _patientRepository; private readonly IRepository _registerCheckRepository; @@ -74,7 +75,9 @@ namespace Shentun.Peis.OccupationalDiseases IRepository asbitemRepository, IRepository patientOccupationalMedicalHistoryRepository, IRepository patientPastMedicalHistoryRepository, - IRepository registerCheckPictureRepository) + IRepository registerCheckPictureRepository, + IRepository symptomRepository, + IRepository poisonRepository) { _patientOccupationalDiseaseRepository = patientOccupationalDiseaseRepository; _patientOccupationalHistoryRepository = patientOccupationalHistoryRepository; @@ -96,6 +99,8 @@ namespace Shentun.Peis.OccupationalDiseases _patientOccupationalMedicalHistoryRepository = patientOccupationalMedicalHistoryRepository; _patientPastMedicalHistoryRepository = patientPastMedicalHistoryRepository; _registerCheckPictureRepository = registerCheckPictureRepository; + _symptomRepository = symptomRepository; + _poisonRepository = poisonRepository; } /// @@ -316,18 +321,27 @@ namespace Shentun.Peis.OccupationalDiseases #region 毒害因素 List patientPoisonDtos = new List(); - var patientPoisonList = await _patientPoisonRepository.GetListAsync(d => d.PatientRegisterId == input.PatientRegisterId); - + //var patientPoisonList = await _patientPoisonRepository.GetListAsync(d => d.PatientRegisterId == input.PatientRegisterId); + var patientPoisonList = from patientPoison in await _patientPoisonRepository.GetQueryableAsync() + join poison in await _poisonRepository.GetQueryableAsync() on patientPoison.PoisonId equals poison.Id into poisonTemp + from poisonHaveEmpty in poisonTemp.DefaultIfEmpty() + where patientPoison.PatientRegisterId == input.PatientRegisterId + select new + { + patientPoison, + PoisonName = poisonHaveEmpty != null ? poisonHaveEmpty.DisplayName : "" + }; patientPoisonDtos = patientPoisonList.Select(s => new PatientPoisonDto { - PoisonId = s.PoisonId, - OccupationalAbnormalId = s.OccupationalAbnormalId, - CreationTime = s.CreationTime, - CreatorId = s.CreatorId, - LastModificationTime = s.LastModificationTime, - LastModifierId = s.LastModifierId, - CreatorName = _cacheService.GetSurnameAsync(s.CreatorId).Result, - LastModifierName = _cacheService.GetSurnameAsync(s.LastModifierId).Result + PoisonId = s.patientPoison.PoisonId, + PoisonName = s.PoisonName, + OccupationalAbnormalId = s.patientPoison.OccupationalAbnormalId, + CreationTime = s.patientPoison.CreationTime, + CreatorId = s.patientPoison.CreatorId, + LastModificationTime = s.patientPoison.LastModificationTime, + LastModifierId = s.patientPoison.LastModifierId, + CreatorName = _cacheService.GetSurnameAsync(s.patientPoison.CreatorId).Result, + LastModifierName = _cacheService.GetSurnameAsync(s.patientPoison.LastModifierId).Result }).OrderBy(o => o.CreationTime).ToList(); result.PatientPoisonDtos = patientPoisonDtos;