From 2150f1c66c0c1c113aa30ef17b290872056d9dbe Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Fri, 12 Aug 2022 15:45:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=80=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/Reading/Dto/OrganInfoViewModel.cs | 112 +++++++---- .../Service/Reading/OrganInfoService.cs | 180 ++++++++++++++---- IRaCIS.Core.Domain/Reading/OrganInfo.cs | 11 +- IRaCIS.Core.Domain/Reading/OrganTrialInfo.cs | 47 +++++ .../Context/IRaCISDBContext.cs | 2 + IRaCIS.Core.Test/DbHelper.ttinclude | 2 +- 6 files changed, 279 insertions(+), 75 deletions(-) create mode 100644 IRaCIS.Core.Domain/Reading/OrganTrialInfo.cs diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/OrganInfoViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/OrganInfoViewModel.cs index b27ba76e3..cc7391c6d 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/OrganInfoViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/OrganInfoViewModel.cs @@ -7,49 +7,89 @@ using System; using IRaCIS.Core.Domain.Share; using System.Collections.Generic; namespace IRaCIS.Core.Application.ViewModel -{ - /// OrganInfoView 列表视图模型 - public class OrganInfoView - { - public Guid Id { get; set; } - public string Part { get; set; } - public string TULOC { get; set; } - public string TULAT { get; set; } - public string TypeName { get; set; } - public DateTime CreateTime { get; set; } - public Guid CreateUserId { get; set; } - } +{ - ///OrganInfoQuery 列表查询参数模型 - public class OrganInfoQuery - { - /// 部位 - public string Part { get; set; } - /// TULOC - public string TULOC { get; set; } + public class BatchAddTrialOrganInDto + { + public Guid TrialId { get; set; } - /// 位置 - public string TULAT { get; set; } + public string TypeName { get; set; } - /// 类型名称 - public string TypeName { get; set; } + public List OrganIds { get; set; } + } - } - /// OrganInfoAddOrEdit 列表查询参数模型 - public class OrganInfoAddOrEdit - { - public Guid? Id { get; set; } - public string Part { get; set; } - public string TULOC { get; set; } - public string TULAT { get; set; } - public string TypeName { get; set; } - public DateTime CreateTime { get; set; } - public Guid CreateUserId { get; set; } - } + /// OrganInfoView 列表视图模型 + public class OrganInfoView + { + public Guid Id { get; set; } + public string Part { get; set; } + public string TULOC { get; set; } + public string TULAT { get; set; } + public string TypeName { get; set; } + public DateTime CreateTime { get; set; } + + /// + /// 备注 + /// + public string Remark { get; set; } + public Guid CreateUserId { get; set; } + } + + + public class GetTrialOrganListInDto + { + public Guid TrialId { get; set; } + public string TypeName { get; set; } + } + + public class GetTrialCheckOrganList : GetTrialOrganListOutDto + { + public bool IsCheckd { get; set; } + } + + public class GetTrialOrganListOutDto + { + public Guid Id { get; set; } + public string Part { get; set; } + public string TULOC { get; set; } + public string TULAT { get; set; } + public string TypeName { get; set; } + + /// + /// 备注 + /// + public string Remark { get; set; } + } + + ///OrganInfoQuery 列表查询参数模型 + public class OrganInfoQuery + { + /// 类型名称 + public string TypeName { get; set; } + + } + + /// OrganInfoAddOrEdit 列表查询参数模型 + public class OrganInfoAddOrEdit + { + public Guid? Id { get; set; } + public string Part { get; set; } + public string TULOC { get; set; } + public string TULAT { get; set; } + public string TypeName { get; set; } + + /// + /// 备注 + /// + public string Remark { get; set; } + + public DateTime CreateTime { get; set; } + public Guid CreateUserId { get; set; } + } + - } diff --git a/IRaCIS.Core.Application/Service/Reading/OrganInfoService.cs b/IRaCIS.Core.Application/Service/Reading/OrganInfoService.cs index 54efab0d3..77bb2e94c 100644 --- a/IRaCIS.Core.Application/Service/Reading/OrganInfoService.cs +++ b/IRaCIS.Core.Application/Service/Reading/OrganInfoService.cs @@ -9,50 +9,160 @@ using Microsoft.AspNetCore.Mvc; using IRaCIS.Core.Application.Interfaces; using IRaCIS.Core.Application.ViewModel; namespace IRaCIS.Core.Application.Service -{ - /// - /// OrganInfoService - /// - [ ApiExplorerSettings(GroupName = "Test")] - public class OrganInfoService: BaseService, IOrganInfoService +{ + /// + /// 器官服务层 + /// + [ApiExplorerSettings(GroupName = "Reading")] + public class OrganInfoService : BaseService, IOrganInfoService { - private readonly IRepository _organInfoRepository; + private readonly IRepository _organInfoRepository; + private readonly IRepository _organTrialInfoRepository; - public OrganInfoService(IRepository organInfoRepository) - { - _organInfoRepository = organInfoRepository; - } + public OrganInfoService( + IRepository organInfoRepository, + IRepository organTrialInfoRepository + ) + { + _organInfoRepository = organInfoRepository; + this._organTrialInfoRepository = organTrialInfoRepository; + } - - public async Task> GetOrganInfoList(OrganInfoQuery inQuery) - { - - var organInfoQueryable = _organInfoRepository - .ProjectTo(_mapper.ConfigurationProvider); - - return await organInfoQueryable.ToListAsync(); - } - + /// + /// 获取系统器官信息 + /// + /// + /// + [HttpPost] + public async Task> GetOrganInfoList(OrganInfoQuery inQuery) + { + var organInfoQueryable = _organInfoRepository + .Where(x=>x.TypeName== inQuery.TypeName) + .ProjectTo(_mapper.ConfigurationProvider); + return await organInfoQueryable.ToListAsync(); + } - public async Task AddOrUpdateOrganInfo(OrganInfoAddOrEdit addOrEditOrganInfo) - { - - var entity = await _organInfoRepository.InsertOrUpdateAsync(addOrEditOrganInfo, true); + /// + /// 新增或修改系统器官数据 + /// + /// + /// + [HttpPost] + public async Task AddOrUpdateOrganInfo(OrganInfoAddOrEdit addOrEditOrganInfo) + { + var entity = await _organInfoRepository.InsertOrUpdateAsync(addOrEditOrganInfo, true); return ResponseOutput.Ok(entity.Id.ToString()); - - } + } - [HttpDelete("{organInfoId:guid}")] - public async Task DeleteOrganInfo(Guid organInfoId) - { - var success = await _organInfoRepository.DeleteFromQueryAsync(t => t.Id == organInfoId,true); - return ResponseOutput.Ok(); - } + /// + /// 删除系统器官 + /// + /// + /// + [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.TypeName==inDto.TypeName); + + List organTrialInfos = inDto.OrganIds.Select(x => new OrganTrialInfo() + { + OrganInfoId=x, + TrialId=inDto.TrialId, + TypeName=inDto.TypeName, + }).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.Where(x => x.TypeName == inDto.TypeName) + join trialData in _organTrialInfoRepository.Where(x => x.TrialId == inDto.TrialId && x.TypeName == inDto.TypeName) + 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, + + }; + + + return await organInfoQueryable.ToListAsync(); + } + + + + /// + /// 获取项目勾选器官信息 + /// + /// + /// + [HttpPost] + public async Task> GetTrialCheckOrganList(GetTrialOrganListInDto inDto) + { + var organInfoQueryable = from data in _organInfoRepository.Where(x => x.TypeName == inDto.TypeName) + join trialData in _organTrialInfoRepository.Where(x => x.TrialId == inDto.TrialId && x.TypeName == inDto.TypeName) + 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(); + } - } -} +} diff --git a/IRaCIS.Core.Domain/Reading/OrganInfo.cs b/IRaCIS.Core.Domain/Reading/OrganInfo.cs index a57f5eb6b..0f1ce6861 100644 --- a/IRaCIS.Core.Domain/Reading/OrganInfo.cs +++ b/IRaCIS.Core.Domain/Reading/OrganInfo.cs @@ -31,10 +31,15 @@ namespace IRaCIS.Core.Domain.Models /// 位置 /// public string TULAT { get; set; } - + /// - /// 类型名称 - /// + /// 备注 + /// + public string Remark { get; set; } + + /// + /// 类型名称 + /// public string TypeName { get; set; } /// diff --git a/IRaCIS.Core.Domain/Reading/OrganTrialInfo.cs b/IRaCIS.Core.Domain/Reading/OrganTrialInfo.cs new file mode 100644 index 000000000..a5294cd64 --- /dev/null +++ b/IRaCIS.Core.Domain/Reading/OrganTrialInfo.cs @@ -0,0 +1,47 @@ + +//-------------------------------------------------------------------- +// 此代码由T4模板自动生成 byzhouhang 20210918 +// 生成时间 2022-08-12 14:29:17 +// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 +using System; +using IRaCIS.Core.Domain.Share; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +namespace IRaCIS.Core.Domain.Models +{ + /// + ///OrganTrialInfo + /// + [Table("OrganTrialInfo")] + public class OrganTrialInfo : Entity, IAuditAdd + { + + /// + /// 器官Id + /// + public Guid OrganInfoId { get; set; } + + /// + /// 项目Id + /// + public Guid TrialId { get; set; } + + /// + /// 类型名称 + /// + public string TypeName { get; set; } + + /// + /// CreateTime + /// + public DateTime CreateTime { get; set; } + + /// + /// CreateUserId + /// + public Guid CreateUserId { get; set; } + + } + + +} diff --git a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs index 1253f955d..4d3d348f3 100644 --- a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs +++ b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs @@ -203,6 +203,8 @@ namespace IRaCIS.Core.Infra.EFCore #region Reading public virtual DbSet OrganInfo { get; set; } + + public virtual DbSet OrganTrialInfo { get; set; } public virtual DbSet ReadingTableQuestionSystem { get; set; } public virtual DbSet ReadingPeriodSet { get; set; } diff --git a/IRaCIS.Core.Test/DbHelper.ttinclude b/IRaCIS.Core.Test/DbHelper.ttinclude index e3236736e..376d73d73 100644 --- a/IRaCIS.Core.Test/DbHelper.ttinclude +++ b/IRaCIS.Core.Test/DbHelper.ttinclude @@ -4,7 +4,7 @@ public static readonly string ConnectionString = "Server=123.56.94.154,1433\\MSSQLSERVER;Database=IRaCIS_New_Tet;User ID=sa;Password=dev123456DEV;TrustServerCertificate=true"; public static readonly string DbDatabase = "IRaCIS_New_Tet"; //ַ,ƴ - public static readonly string TableName = "OrganInfo"; + public static readonly string TableName = "OrganTrialInfo"; //ļ service Ƿҳ } #>