修改暂存

IRC_NewDev
hang 2023-07-04 09:23:29 +08:00
parent ec3087efc4
commit e7f281a03d
1 changed files with 45 additions and 56 deletions

View File

@ -8,6 +8,7 @@ using IRaCIS.Core.Infrastructure;
using IRaCIS.Core.Infrastructure.Extention; using IRaCIS.Core.Infrastructure.Extention;
using MathNet.Numerics; using MathNet.Numerics;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore.Metadata.Internal;
using System.Linq; using System.Linq;
using System.Linq.Dynamic.Core; using System.Linq.Dynamic.Core;
@ -872,6 +873,9 @@ namespace IRaCIS.Core.Application
CriterionName = g.Key.CriterionName, CriterionName = g.Key.CriterionName,
TrialReadingCriterionId = g.Key.TrialReadingCriterionId, TrialReadingCriterionId = g.Key.TrialReadingCriterionId,
#region 不能对包含聚合或子查询的表达式执行聚合函数
#endregion
//UrgentCount = g.Where(u => u.VisitTask.IsUrgent //UrgentCount = g.Where(u => u.VisitTask.IsUrgent
//&& u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First().UserTypeEnumInt == (int)UserTypeEnum.MIM).Count(), //&& u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First().UserTypeEnumInt == (int)UserTypeEnum.MIM).Count(),
@ -914,64 +918,49 @@ namespace IRaCIS.Core.Application
#region 废弃不能对包含聚合或子查询的表达式执行聚合函数 #region 废弃不能对包含聚合或子查询的表达式执行聚合函数
var query = _taskMedicalReviewRepository
.Where(t => t.Trial.TrialUserList.Any(t => t.UserId == _userInfo.Id))
.Where(t => t.IsClosedDialog == false)
.GroupBy(t => new
{
t.TrialId,
t.Trial.ResearchProgramNo,
t.Trial.ExperimentName,
t.Trial.TrialCode,
t.VisitTask.TrialReadingCriterionId,
t.VisitTask.TrialReadingCriterion.CriterionName
})
.Select(g => new MedicalCommentsToBeDoneDto()
{
TrialId = g.Key.TrialId,
ResearchProgramNo = g.Key.ResearchProgramNo,
ExperimentName = g.Key.ExperimentName,
TrialCode = g.Key.TrialCode,
CriterionName = g.Key.CriterionName,
//UrgentCount = g.Where(u => u.VisitTask.IsUrgent).Select(u => u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First())
//.Count(t => t.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer),
//ToBeReplyedCount = g.Select(t => t.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First()).Count(t => t.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer),
ToBeReviewedCount = g.Where(u => !u.IsInvalid && u.AuditState != MedicalReviewAuditState.HaveSigned).Count()
});
#endregion #endregion
//var query = _trialReadingCriterionRepository
// .Where(t => t.Trial.TrialUserList.Any(t => t.UserId == _userInfo.Id)) var subquery = _taskMedicalReviewRepository
// //.Where(t => t.IsClosedDialog == false) .Where(t => t.Trial.TrialUserList.Any(tu => tu.UserId == _userInfo.Id))
// .GroupBy(t => new .Where(t => !t.IsClosedDialog)
// { .Select(t => new
// t.TrialId, {
// t.Trial.ResearchProgramNo, t.TrialId,
// t.Trial.ExperimentName, t.Trial.ResearchProgramNo,
// t.Trial.TrialCode, t.Trial.ExperimentName,
// t.VisitTask.TrialReadingCriterionId, t.Trial.TrialCode,
// t.VisitTask.TrialReadingCriterion.CriterionName t.VisitTask.TrialReadingCriterionId,
// }) t.VisitTask.TrialReadingCriterion.CriterionName,
// .Select(g => new MedicalCommentsToBeDoneDto()
// { IsIndependentReviewer = (t.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).FirstOrDefault().UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer),
// TrialId = g.Key.TrialId, IsInvalid = t.IsInvalid,
// ResearchProgramNo = g.Key.ResearchProgramNo, AuditState = t.AuditState
// ExperimentName = g.Key.ExperimentName, });
// TrialCode = g.Key.TrialCode,
// CriterionName = g.Key.CriterionName,
// UrgentCount = g.Where(u => u.VisitTask.IsUrgent).Select(u=>u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First()) var query = subquery
// .Count(t=>t.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer), .GroupBy(t => new
{
t.TrialId,
t.ResearchProgramNo,
t.ExperimentName,
t.TrialCode,
t.TrialReadingCriterionId,
t.CriterionName
})
.Select(g => new MedicalCommentsToBeDoneDto()
{
TrialId = g.Key.TrialId,
ResearchProgramNo = g.Key.ResearchProgramNo,
ExperimentName = g.Key.ExperimentName,
TrialCode = g.Key.TrialCode,
CriterionName = g.Key.CriterionName,
UrgentCount = g.Count(t => t.IsIndependentReviewer ),
ToBeReplyedCount = g.Count(t => t.IsIndependentReviewer),
ToBeReviewedCount = g.Count(t => !t.IsInvalid && t.AuditState != MedicalReviewAuditState.HaveSigned)
});
// ToBeReplyedCount = g.Select(t=>t.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First()).Count(t=>t.UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer), var list = query.ToList();
// ToBeReviewedCount=g.Where(u => !u.IsInvalid && u.AuditState != MedicalReviewAuditState.HaveSigned).Count()
// });
var result = await query.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrEmpty(inQuery.SortField) ? nameof(MedicalCommentsToBeDoneDto.TrialId) : inQuery.SortField, inQuery.Asc); var result = await query.ToPagedListAsync(inQuery.PageIndex, inQuery.PageSize, string.IsNullOrEmpty(inQuery.SortField) ? nameof(MedicalCommentsToBeDoneDto.TrialId) : inQuery.SortField, inQuery.Asc);
@ -1206,11 +1195,11 @@ namespace IRaCIS.Core.Application
.Where(t => t.IsClosedDialog == false) .Where(t => t.IsClosedDialog == false)
.Where(u => u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First().UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer).Count() : 0, .Where(u => u.ReadingMedicalReviewDialogList.OrderByDescending(l => l.CreateTime).First().UserTypeEnumInt == (int)UserTypeEnum.IndependentReviewer).Count() : 0,
Medical_MIM_ToBeReviewedCount= Medical_MIM_ToBeReviewedCount =
(t.User.UserTypeEnum == UserTypeEnum.MIM) ? (t.User.UserTypeEnum == UserTypeEnum.MIM) ?
t.Trial.TaskMedicalReviewList t.Trial.TaskMedicalReviewList
.Where(t => t.IsClosedDialog == false) .Where(t => t.IsClosedDialog == false)
.Where(u => !u.IsInvalid && u.AuditState != MedicalReviewAuditState.HaveSigned).Count():0 .Where(u => !u.IsInvalid && u.AuditState != MedicalReviewAuditState.HaveSigned).Count() : 0
}); });