//-------------------------------------------------------------------- // 此代码由T4模板自动生成 byzhouhang 20210918 // 生成时间 2022-08-12 14:07:20 // 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 //-------------------------------------------------------------------- using IRaCIS.Core.Domain.Models; using Microsoft.AspNetCore.Mvc; using IRaCIS.Core.Application.Interfaces; using IRaCIS.Core.Application.ViewModel; using IRaCIS.Core.Infra.EFCore.Common; namespace IRaCIS.Core.Application.Service { /// /// 器官服务层 /// [ApiExplorerSettings(GroupName = "Reading")] public class OrganInfoService : BaseService, IOrganInfoService { private readonly IRepository _organInfoRepository; private readonly IRepository _organTrialInfoRepository; public OrganInfoService( IRepository organInfoRepository, IRepository organTrialInfoRepository ) { _organInfoRepository = organInfoRepository; this._organTrialInfoRepository = organTrialInfoRepository; } /// /// 获取系统器官信息 /// /// /// [HttpPost] public async Task> GetOrganInfoList(OrganInfoQuery inQuery) { var organInfoQueryable = _organInfoRepository .WhereIf(!inQuery.TypeName.IsNullOrEmpty(),x=>x.TypeName==inQuery.TypeName) .WhereIf(inQuery.OrganType!=null, x => x.OrganType == inQuery.OrganType) .ProjectTo(_mapper.ConfigurationProvider); return await organInfoQueryable.ToListAsync(); } /// /// 新增或修改系统器官数据 /// /// /// [HttpPost] public async Task AddOrUpdateOrganInfo(OrganInfoAddOrEdit addOrEditOrganInfo) { var entity = await _organInfoRepository.InsertOrUpdateAsync(addOrEditOrganInfo, true); return ResponseOutput.Ok(entity.Id.ToString()); } /// /// 删除系统器官 /// /// /// [HttpDelete("{Id:guid}")] public async Task DeleteOrganInfo(Guid Id) { var success = await _organInfoRepository.DeleteFromQueryAsync(t => t.Id == Id, true); return ResponseOutput.Ok(); } /// /// 批量添加项目器官 /// /// /// public async Task BatchAddTrialOrgan(BatchAddTrialOrganInDto inDto) { //await _organTrialInfoRepository.BatchDeleteNoTrackingAsync(t => t.TrialId==inDto.TrialId&&t.OrganType == inDto.OrganType); List organTrialInfos = inDto.OrganIds.Select(x => new OrganTrialInfo() { OrganInfoId=x, TrialId=inDto.TrialId, //OrganType=inDto.OrganType, }).ToList(); await _organTrialInfoRepository.AddRangeAsync(organTrialInfos); await _organInfoRepository.SaveChangesAsync(); return ResponseOutput.Ok(); } /// /// 删除系统器官 /// /// /// [HttpDelete("{Id:guid}")] public async Task DeleteTrialOrganInfo(Guid Id) { var success = await _organTrialInfoRepository.DeleteFromQueryAsync(t => t.Id == Id, true); return ResponseOutput.Ok(); } /// /// 获取项目器官信息 /// /// /// [HttpPost] public async Task> GetTrialOrganList(GetTrialOrganListInDto inDto) { var organInfoQueryable = from data in _organInfoRepository.WhereIf(inDto.OrganType!=null, x => x.OrganType == inDto.OrganType) join trialData in _organTrialInfoRepository.WhereIf(inDto.OrganType != null, x => x.OrganType == inDto.OrganType) .Where(x => x.TrialId == inDto.TrialId) on data.Id equals trialData.OrganInfoId select new GetTrialOrganListOutDto() { Id = trialData.Id, Part = data.Part, TULAT = data.TULAT, TULOC = data.TULOC, TypeName = data.TypeName, Remark= data.Remark, OrganType=data.OrganType, }; return await organInfoQueryable.ToListAsync(); } /// /// 获取项目勾选器官信息 /// /// /// [HttpPost] public async Task> GetTrialCheckOrganList(GetTrialOrganListInDto inDto) { var organInfoQueryable = from data in _organInfoRepository.WhereIf(inDto.OrganType != null, x => x.OrganType == inDto.OrganType) join trialData in _organTrialInfoRepository.WhereIf(inDto.OrganType != null, x => x.OrganType == inDto.OrganType) .Where(x => x.TrialId == inDto.TrialId) on data.Id equals trialData.OrganInfoId into jtemp from leftjoin in jtemp.DefaultIfEmpty() select new GetTrialCheckOrganList() { Id = data.Id, Part = data.Part, TULAT = data.TULAT, TULOC = data.TULOC, TypeName = data.TypeName, IsCheckd= leftjoin!=null, Remark = data.Remark, }; return await organInfoQueryable.ToListAsync(); } } }