修改一版

This commit is contained in:
he
2022-05-27 17:19:51 +08:00
parent f8958dfc21
commit 24aa7167b7
6 changed files with 210 additions and 0 deletions
@@ -0,0 +1,37 @@
using IRaCIS.Core.Domain.Share.Reading;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IRaCIS.Core.Application.Service.Reading.Dto
{
public class GetReadModuleDto
{
public Guid TrialId { get; set; }
}
public class GetReadModuleOutDto: ReadModule
{
public string SubjectCode { get; set; }
public string SiteCode { get; set; }
public Guid? SiteId { get; set; }
}
public class GetReadModuleDtoOut
{
public string SubjectCode { get; set; }
public string SiteCode { get; set; }
public Guid? SiteId { get; set; }
public Guid? SubjectId { get; set; }
public List<GetReadModuleOutDto> Data { get; set; }
}
}
@@ -0,0 +1,66 @@
using IRaCIS.Application.Interfaces;
using IRaCIS.Core.Infra.EFCore;
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Application.Filter;
using Microsoft.AspNetCore.Mvc;
using IRaCIS.Core.Application.Service.WorkLoad.DTO;
using Microsoft.AspNetCore.Authorization;
using IRaCIS.Core.Application.Auth;
using IRaCIS.Core.Application.Service.Reading.Dto;
using IRaCIS.Core.Domain.Share.Reading;
namespace IRaCIS.Application.Services
{
[ApiExplorerSettings(GroupName = "Reading")]
public class ReadModuleService : BaseService
{
public IRepository<SubjectVisit> _subjectVisitRepository;
public ReadModuleService(IRepository<SubjectVisit> subjectVisitRepository
)
{
_subjectVisitRepository = subjectVisitRepository;
}
/// <summary>
/// 添加或更新项目医生项目价格
/// </summary>
[HttpPost]
public async Task<List<GetReadModuleDtoOut>> GetReadModule(GetReadModuleDto dto)
{
var visits = await _subjectVisitRepository.Where(x => x.TrialId == dto.TrialId).Include(x=>x.Subject).Include(x => x.Site)
.Select(x=>new GetReadModuleOutDto ()
{
CreateTime=x.CreateTime,
Id=x.Id,
SubjectId=x.SubjectId,
SubjectVisitId=x.Id,
IsUrgent=x.IsUrgent,
ModuleName= x.InPlan?"计划内访视":"计划外访视",
ModuleType= x.InPlan? ModuleTypeEnum.InPlanSubjectVisit: ModuleTypeEnum.OutPlanSubjectVisit,
SubjectCode=x.Subject.Code,
SiteCode=x.Site.SiteCode,
SiteId=x.Site.Id,
}).ToListAsync();
var data = visits.GroupBy(x => new { x.SiteId, x.SubjectId, x.SiteCode, x.SubjectCode }).Select(x => new GetReadModuleDtoOut()
{
SiteCode = x.Key.SiteCode,
SiteId = x.Key.SiteId,
SubjectCode = x.Key.SubjectCode,
SubjectId = x.Key.SubjectId,
Data = x.ToList().OrderBy(y => y.ModuleType).ToList(),
}).ToList();
return data;
}
}
}