上线前 整理代码

This commit is contained in:
2022-06-01 10:01:57 +08:00
parent 7ace793235
commit bd44ac3b2c
20 changed files with 183 additions and 765 deletions
@@ -3,7 +3,6 @@ using IRaCIS.Application.Interfaces;
using IRaCIS.Application.Contracts;
using IRaCIS.Application.Contracts.Pay;
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Infrastructure.ExpressionExtend;
using System.Linq.Expressions;
using IRaCIS.Core.Infra.EFCore;
using IRaCIS.Core.Domain.Models;
@@ -117,6 +117,8 @@ namespace IRaCIS.Application.Contracts.Pay
public string FirstName { get; set; } = String.Empty;
public string LastName { get; set; } = String.Empty;
public string FullName { get; set; } = String.Empty;
public decimal AdjustmentUSD { get; set; }
public decimal AdjustmentCNY { get; set; }
public decimal PaymentUSD { get; set; }
@@ -1,14 +1,11 @@
using IRaCIS.Core.Infrastructure.ExpressionExtend;
using IRaCIS.Application.Interfaces;
using IRaCIS.Application.Interfaces;
using IRaCIS.Application.Contracts;
using IRaCIS.Application.Contracts.Pay;
using IRaCIS.Core.Domain.Share;
using System.Linq.Expressions;
using IRaCIS.Core.Infra.EFCore;
using IRaCIS.Core.Domain.Models;
using IRaCIS.Core.Infrastructure.Extention;
using Microsoft.AspNetCore.Mvc;
using Panda.DynamicWebApi.Attributes;
using System.Linq.Dynamic.Core;
namespace IRaCIS.Application.Services
{
@@ -133,12 +130,17 @@ namespace IRaCIS.Application.Services
BankName = payInfo.BankName
};
var propName = string.IsNullOrWhiteSpace(queryParam.SortField) ? "Code" : queryParam.SortField;
costStatisticsQueryable = queryParam.Asc ? costStatisticsQueryable.OrderBy(propName).ThenBy(u => u.Code)
: costStatisticsQueryable.OrderByDescending(propName).ThenBy(u => u.Code);
var count = costStatisticsQueryable.Count();
costStatisticsQueryable = costStatisticsQueryable.Skip((queryParam.PageIndex - 1) * queryParam.PageSize).Take(queryParam.PageSize);
var costStatisticsList = await costStatisticsQueryable.ToListAsync();
return await costStatisticsQueryable.ToPagedListAsync(queryParam.PageIndex, queryParam.PageSize, string.IsNullOrWhiteSpace(queryParam.SortField) ? "Code" : queryParam.SortField, queryParam.Asc);
//var propName = string.IsNullOrWhiteSpace(queryParam.SortField) ? "Code" : queryParam.SortField;
//costStatisticsQueryable = queryParam.Asc ? costStatisticsQueryable.OrderBy(propName).ThenBy(u => u.Code)
// : costStatisticsQueryable.OrderByDescending(propName).ThenBy(u => u.Code);
//var count = costStatisticsQueryable.Count();
//costStatisticsQueryable = costStatisticsQueryable.Skip((queryParam.PageIndex - 1) * queryParam.PageSize).Take(queryParam.PageSize);
//var costStatisticsList = await costStatisticsQueryable.ToListAsync();
//return new PageOutput<PaymentModel>(queryParam.PageIndex, queryParam.PageSize, count, costStatisticsList);
#region
@@ -167,7 +169,6 @@ namespace IRaCIS.Application.Services
#endregion
return new PageOutput<PaymentModel>(queryParam.PageIndex, queryParam.PageSize, count, costStatisticsList);
}
/// <summary>
@@ -405,6 +406,7 @@ namespace IRaCIS.Application.Services
ChineseName = doctor.ChineseName,
FirstName = doctor.FirstName,
LastName = doctor.LastName,
FullName= doctor.FullName,
ReviewerCode = doctor.ReviewerCode,
PaymentUSD = monthlyPay.PaymentUSD,
PaymentCNY = monthlyPay.PaymentCNY,
@@ -413,17 +415,20 @@ namespace IRaCIS.Application.Services
TotalCNY = monthlyPay.AdjustmentCNY + monthlyPay.PaymentCNY,
TotalUSD = monthlyPay.AdjustmentUSD + monthlyPay.PaymentUSD
};
var propName = queryParam.SortField == string.Empty ? "ReviewerCode" : queryParam.SortField;
query = queryParam.Asc ? query.OrderBy(propName).ThenBy(u => u.ReviewerCode) : query.OrderByDescending(propName).ThenBy(u => u.ReviewerCode);
if (propName == "FirstName" || propName == "LastName")
{
query = queryParam.Asc ? query.OrderBy(t => t.LastName).ThenBy(t => t.FirstName)
: query.OrderByDescending(t => t.LastName).ThenBy(t => t.FirstName);
}
var count = await query.CountAsync();
query = query.Skip((queryParam.PageIndex - 1) * queryParam.PageSize).Take(queryParam.PageSize);
var list = await query.ToListAsync();
return new PageOutput<MonthlyPaymentDTO>(queryParam.PageIndex, queryParam.PageSize, count, list);
return await query.ToPagedListAsync(queryParam.PageIndex, queryParam.PageSize, string.IsNullOrWhiteSpace(queryParam.SortField) ? "ReviewerCode" : queryParam.SortField, queryParam.Asc);
//var propName = queryParam.SortField == string.Empty ? "ReviewerCode" : queryParam.SortField;
//query = queryParam.Asc ? query.OrderBy(propName).ThenBy(u => u.ReviewerCode) : query.OrderByDescending(propName).ThenBy(u => u.ReviewerCode);
//if (propName == "FirstName" || propName == "LastName")
//{
// query = queryParam.Asc ? query.OrderBy(t => t.LastName).ThenBy(t => t.FirstName)
// : query.OrderByDescending(t => t.LastName).ThenBy(t => t.FirstName);
//}
//var count = await query.CountAsync();
//query = query.Skip((queryParam.PageIndex - 1) * queryParam.PageSize).Take(queryParam.PageSize);
//var list = await query.ToListAsync();
//return new PageOutput<MonthlyPaymentDTO>(queryParam.PageIndex, queryParam.PageSize, count, list);
}
@@ -833,13 +838,13 @@ namespace IRaCIS.Application.Services
//非详细 只用单字段排序
if (queryParam.StatType != 0)
{
query = queryParam.Asc ? query.OrderBy(propName) : query.OrderByDescending(propName);
query = queryParam.Asc ? query.OrderBy(propName) : query.OrderBy(propName + " desc");
}
//详情 多字段排序
if (queryParam.StatType == 0)
{
query = queryParam.Asc ? query.OrderBy(propName).ThenBy(t => t.TrialId).ThenBy(t => t.YearMonth).ThenBy(t => t.ReviewerCode) :
query.OrderByDescending(propName).ThenBy(t => t.TrialId).ThenBy(t => t.YearMonth).ThenBy(t => t.ReviewerCode)
query.OrderBy(propName + " desc").ThenBy(t => t.TrialId).ThenBy(t => t.YearMonth).ThenBy(t => t.ReviewerCode)
;
}
@@ -1,5 +1,4 @@
using AutoMapper;
using IRaCIS.Core.Infrastructure.ExpressionExtend;
using IRaCIS.Application.Interfaces;
using IRaCIS.Application.Contracts;
using System.Linq.Expressions;
@@ -1,5 +1,4 @@
using AutoMapper;
using IRaCIS.Core.Infrastructure.ExpressionExtend;
using IRaCIS.Application.Interfaces;
using IRaCIS.Application.Contracts;
using System.Linq.Expressions;
@@ -1,6 +1,5 @@
using AutoMapper;
using AutoMapper.QueryableExtensions;
using IRaCIS.Core.Infrastructure.ExpressionExtend;
using IRaCIS.Application.Interfaces;
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Infra.EFCore;
@@ -5,7 +5,6 @@
//--------------------------------------------------------------------
using Microsoft.AspNetCore.Mvc;
using IRaCIS.Core.Domain.Share;
using IRaCIS.Core.Infrastructure.ExpressionExtend;
using IRaCIS.Core.Infra.EFCore;
namespace IRaCIS.Core.Application.Contracts
@@ -13,6 +13,8 @@ namespace IRaCIS.Application.Contracts
public string FirstName { get; set; } = string.Empty;
public string LastName { get; set; } = string.Empty;
public string FullName { get; set; } = string.Empty;
public string ReviewerCode { get; set; } = string.Empty;
public int Pending { get; set; }
@@ -114,6 +116,8 @@ namespace IRaCIS.Application.Contracts
public string FirstName { get; set; } = string.Empty;
public string LastName { get; set; } = string.Empty;
public string FullName { get; set; } = string.Empty;
public string ReviewerCode { get; set; } = string.Empty;
public int Training { get; set; }
@@ -7,7 +7,7 @@ namespace IRaCIS.Application.Interfaces
{
public interface IStatisticsService
{
PageOutput<WorkloadByTrialAndReviewerDTO> GetWorkloadByTrialAndReviewer(StatisticsWorkloadQueryParam param);
Task<PageOutput<WorkloadByTrialAndReviewerDTO>> GetWorkloadByTrialAndReviewer(StatisticsWorkloadQueryParam param);
PageOutput<EnrollStatByTrialDTO> GetEnrollStatByTrial(EnrollStatByTrialQueryDTO param);
@@ -38,6 +38,6 @@ namespace IRaCIS.Application.Interfaces
List<LatestWorkLoadDTO> GetLatestWorkLoadList( int searchCount);
#endregion
PageOutput<EnrollStatByReviewerDTO> GetEnrollStatByReviewer(EnrollStatByReviewerQueryDTO enrollTrialStatisticsQueryParam);
Task<PageOutput<EnrollStatByReviewerDTO>> GetEnrollStatByReviewer(EnrollStatByReviewerQueryDTO enrollTrialStatisticsQueryParam);
}
}
@@ -1,12 +1,9 @@
using IRaCIS.Core.Infrastructure.ExpressionExtend;
using IRaCIS.Application.Interfaces;
using IRaCIS.Application.Interfaces;
using IRaCIS.Application.Contracts;
using IRaCIS.Core.Infra.EFCore;
using IRaCIS.Core.Domain.Models;
using IRaCIS.Core.Domain.Share;
using System.Linq.Expressions;
using System.Linq.Dynamic.Core;
using IRaCIS.Core.Infrastructure.Extention;
using Microsoft.AspNetCore.Mvc;
namespace IRaCIS.Application.Services
@@ -14,12 +11,12 @@ namespace IRaCIS.Application.Services
/// Dashboard统计、全局工作量统计、入组两个维度统计(按照项目、按照人)
/// </summary>
[ ApiExplorerSettings(GroupName = "Dashboard&Statistics")]
[ApiExplorerSettings(GroupName = "Dashboard&Statistics")]
public class StatisticsService : BaseService, IStatisticsService
{
private readonly IRepository<Doctor> _doctorRepository;
private readonly IRepository<Trial> _trialRepository;
private readonly IRepository<Enroll> _enrollRepository;
private readonly IRepository<Enroll> _enrollRepository;
private readonly IRepository<Workload> _workloadRepository;
private readonly IRepository<CRO> _croCompanyRepository;
private readonly IRepository<Dictionary> _dictionaryRepository;
@@ -27,7 +24,7 @@ namespace IRaCIS.Application.Services
private readonly IRepository<EnrollDetail> _enrollDetailRepository;
private readonly IRepository<User> _userRepository;
private readonly IRepository<TrialUser> _userTrialRepository;
public StatisticsService(IRepository<Doctor> doctorRepository, IRepository<Trial> trialRepository,
IRepository<Enroll> intoGroupRepository, IRepository<Workload> workloadRepository,
@@ -47,16 +44,16 @@ namespace IRaCIS.Application.Services
_enrollDetailRepository = enrollDetailRepository;
_userRepository = userRepository;
_userTrialRepository = userTrialRepository;
}
/// <summary> 根据项目和医生,分页获取工作量统计[New] </summary>
[HttpPost]
public PageOutput<WorkloadByTrialAndReviewerDTO> GetWorkloadByTrialAndReviewer(
public async Task<PageOutput<WorkloadByTrialAndReviewerDTO>> GetWorkloadByTrialAndReviewer(
StatisticsWorkloadQueryParam param)
{
var bDate = new DateTime(param.BeginDate.Year, param.BeginDate.Month, param.BeginDate.Day);
var eDate = new DateTime(param.EndDate.Year, param.EndDate.Month, param.EndDate.Day);
@@ -65,14 +62,14 @@ namespace IRaCIS.Application.Services
workloadLambda = workloadLambda.And(x => x.WorkTime >= bDate && x.WorkTime < eDate);
Expression<Func<Trial, bool>> trialLambda = x => true;
if (_userInfo.UserTypeEnumInt ==(int) UserTypeEnum.SuperAdmin) //超级管理员按照条件查询所有
if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.SuperAdmin) //超级管理员按照条件查询所有
{
if ( param.CroId != null)
if (param.CroId != null)
{
trialLambda = trialLambda.And(u => u.CROId == param.CroId);
}
}
else //不管是精鼎的pm还是我们的pm 还是运维人员 只能看到自己参与项目的统计
{
List<Guid> trialIdList = _userTrialRepository.Where(u => u.UserId == _userInfo.Id).Select(u => u.TrialId).ToList();
@@ -140,6 +137,7 @@ namespace IRaCIS.Application.Services
ChineseName = doctorItem.ChineseName,
FirstName = doctorItem.FirstName,
LastName = doctorItem.LastName,
FullName = doctorItem.FullName,
Training = w.Training,
Timepoint = w.Timepoint,
TimepointIn24H = w.TimepointIn24H,
@@ -155,31 +153,36 @@ namespace IRaCIS.Application.Services
w.AdjudicationIn48H + w.Global
};
var propName = param.SortField == "" ? "ReviewerCode" : param.SortField;
query = param.Asc
? query.OrderBy(propName).ThenBy(t => t.TrialCode).ThenBy(u => u.ReviewerCode)
: query.OrderByDescending(propName).ThenBy(t => t.TrialCode).ThenBy(u => u.ReviewerCode);
if (propName == "FirstName" || propName == "LastName")
{
query = param.Asc
? query.OrderBy(t => t.LastName).ThenBy(t => t.FirstName)
: query.OrderByDescending(t => t.LastName).ThenBy(t => t.FirstName);
}
var count = query.Count();
query = query
.Skip((param.PageIndex - 1) * param.PageSize)
.Take(param.PageSize);
var doctorViewList = query.ToList();
return await query.ToPagedListAsync(param.PageIndex, param.PageSize, string.IsNullOrWhiteSpace(param.SortField) ? "ReviewerCode" : param.SortField, param.Asc);
return new PageOutput<WorkloadByTrialAndReviewerDTO>(param.PageIndex, param.PageSize, count, doctorViewList);
//var propName = param.SortField == "" ? "ReviewerCode" : param.SortField;
//query = param.Asc
// ? query.OrderBy(propName).ThenBy(t => t.TrialCode).ThenBy(u => u.ReviewerCode)
// : query.OrderByDescending(propName).ThenBy(t => t.TrialCode).ThenBy(u => u.ReviewerCode);
//if (propName == "FirstName" || propName == "LastName")
//{
// query = param.Asc
// ? query.OrderBy(t => t.LastName).ThenBy(t => t.FirstName)
// : query.OrderByDescending(t => t.LastName).ThenBy(t => t.FirstName);
//}
//var count = query.Count();
//query = query
// .Skip((param.PageIndex - 1) * param.PageSize)
// .Take(param.PageSize);
//var doctorViewList = query.ToList();
//return new PageOutput<WorkloadByTrialAndReviewerDTO>(param.PageIndex, param.PageSize, count, doctorViewList);
}
/// <summary> 项目入组 医生维度统计[New] </summary>
[HttpPost]
public PageOutput<EnrollStatByReviewerDTO> GetEnrollStatByReviewer(EnrollStatByReviewerQueryDTO param)
public async Task<PageOutput<EnrollStatByReviewerDTO>> GetEnrollStatByReviewer(EnrollStatByReviewerQueryDTO param)
{
var bDate = new DateTime(param.BeginDate.Year, param.BeginDate.Month, 1);
var eDate = new DateTime(param.EndDate.Year, param.EndDate.Month, 1);
@@ -236,6 +239,7 @@ namespace IRaCIS.Application.Services
ChineseName = doctor.ChineseName,
FirstName = doctor.FirstName,
LastName = doctor.LastName,
FullName = doctor.FullName,
Pending = w.Submitted,
Approved = w.Approved,
Reading = w.Reading,
@@ -244,35 +248,30 @@ namespace IRaCIS.Application.Services
Total = w.Submitted + w.Approved + w.Reading + w.Finished
};
if (param.SortField != "EntryRate")
{
var propName = param.SortField == "" ? "ReviewerCode" : param.SortField;
query = param.Asc
? query.OrderBy(propName).ThenBy(u => u.ReviewerCode)
: query.OrderByDescending(propName).ThenBy(u => u.ReviewerCode);
if (propName == "FirstName" || propName == "LastName")
{
query = param.Asc
? query.OrderBy(t => t.LastName).ThenBy(t => t.FirstName)
: query.OrderByDescending(t => t.LastName).ThenBy(t => t.FirstName);
}
}
var count = query.Count();
query = query
.Skip((param.PageIndex - 1) * param.PageSize)
.Take(param.PageSize);
var list = query.ToList();
var pageData = await query.ToPagedListAsync(param.PageIndex, param.PageIndex, param.SortField == "" ? "ReviewerCode" : param.SortField, param.Asc);
if (param.SortField == "EntryRate")
{
list = param.Asc
? list.OrderBy(t => t.EntryRate).ToList()
: list.OrderByDescending(t => t.EntryRate).ToList();
pageData.CurrentPageData.OrderBy(t => t.EntryRate);
}
return new PageOutput<EnrollStatByReviewerDTO>(param.PageIndex, param.PageSize, count, list);
return pageData;
//var count = query.Count();
//query = query
// .Skip((param.PageIndex - 1) * param.PageSize)
// .Take(param.PageSize);
//var list = query.ToList();
//if (param.SortField == "EntryRate")
//{
// list = param.Asc
// ? list.OrderBy(t => t.EntryRate).ToList()
// : list.OrderByDescending(t => t.EntryRate).ToList();
//}
//return new PageOutput<EnrollStatByReviewerDTO>(param.PageIndex, param.PageSize, count, list);
}
[HttpPost]
@@ -300,7 +299,7 @@ namespace IRaCIS.Application.Services
trialLambda = trialLambda.And(o => o.Indication.Contains(indication));
}
if ( param.CROId != null)
if (param.CROId != null)
{
trialLambda = trialLambda.And(o => o.CROId == param.CROId);
}
@@ -344,7 +343,7 @@ namespace IRaCIS.Application.Services
var propName = param.SortField == "" ? "TrialCode" : param.SortField;
trialQuery = param.Asc
? trialQuery.OrderBy(propName)
: trialQuery.OrderByDescending(propName);
: trialQuery.OrderBy(propName + " desc");
var count = trialQuery.Count();
@@ -396,7 +395,7 @@ namespace IRaCIS.Application.Services
{
Expression<Func<User, bool>> userLambda = x => true;
Expression<Func<TrialUser, bool>> userTrialLambda = x =>true;
Expression<Func<TrialUser, bool>> userTrialLambda = x => true;
if (!string.IsNullOrEmpty(param.UserInfo))
{
var userInfo = param.UserInfo.Trim();
@@ -417,9 +416,9 @@ namespace IRaCIS.Application.Services
if (userTypeEnumStr == UserTypeEnum.ProjectManager.ToString())
{
//参与到的项目
var trialFilter = _userTrialRepository.Where(t => t.UserId == userId)
.Select(u => u.TrialId);
userTrialLambda = userTrialLambda.And(t => trialFilter.Contains(t.TrialId));
var trialFilter = _userTrialRepository.Where(t => t.UserId == userId)
.Select(u => u.TrialId);
userTrialLambda = userTrialLambda.And(t => trialFilter.Contains(t.TrialId));
}
//.Select(u => new { u.TrialId, u.UserId }).Distinct()
var trialStatQuery = _userTrialRepository.Where(userTrialLambda)
@@ -431,23 +430,23 @@ namespace IRaCIS.Application.Services
});
var userQuery = from trialStat in trialStatQuery
join user in _userRepository.Where(userLambda) on trialStat.UserId equals user.Id
select new UserParticipateTrialStat
{
Email = user.EMail,
Name = user.LastName + ' ' + user.FirstName,
UserName = user.UserName,
OrganizationName = user.OrganizationName,
Phone = user.Phone,
TrialCount = trialStat.TrialCount,
UserCode = user.UserCode,
UserId = user.Id
};
join user in _userRepository.Where(userLambda) on trialStat.UserId equals user.Id
select new UserParticipateTrialStat
{
Email = user.EMail,
Name = user.LastName + ' ' + user.FirstName,
UserName = user.UserName,
OrganizationName = user.OrganizationName,
Phone = user.Phone,
TrialCount = trialStat.TrialCount,
UserCode = user.UserCode,
UserId = user.Id
};
var propName = param.SortField == "" ? "OrganizationName" : param.SortField;
userQuery = param.Asc
? userQuery.OrderBy(propName)
: userQuery.OrderByDescending(propName);
: userQuery.OrderBy(propName + " desc");
var count = userQuery.Count();
@@ -462,8 +461,8 @@ namespace IRaCIS.Application.Services
[HttpGet("{userId:guid}")]
public List<UserParticipateTrialDetail> GetParticipateTrialList(Guid userId)
{
Expression<Func<TrialUser, bool>> userTrialLambda = x => x.UserId== userId;
Expression<Func<TrialUser, bool>> userTrialLambda = x => x.UserId == userId;
var userTypeEnum = _userInfo.UserTypeEnumStr;
var loginUserId = _userInfo.Id;
@@ -473,29 +472,29 @@ namespace IRaCIS.Application.Services
if (userTypeEnum == UserTypeEnum.ProjectManager.ToString())
{
//参与到的项目
var trialFilter = _userTrialRepository.Where(t => t.UserId == loginUserId)
.Select(u => u.TrialId);
var trialFilter = _userTrialRepository.Where(t => t.UserId == loginUserId)
.Select(u => u.TrialId);
userTrialLambda = userTrialLambda.And(t => trialFilter.Contains(t.TrialId));
}
var query = from userTrial in _userTrialRepository.Where(userTrialLambda)
join trial in _trialRepository.AsQueryable() on userTrial.TrialId equals trial.Id
join cro in _croCompanyRepository.AsQueryable() on trial.CROId equals cro.Id into cc
from cro in cc.DefaultIfEmpty()
select new UserParticipateTrialDetail()
{
Code = trial.TrialCode,
CROName = cro.CROName,
Expedited = trial.Expedited,
Indication = trial.Indication,
UserType = userTrial.User.UserTypeRole.UserTypeShortName,
TrialId = trial.Id
join trial in _trialRepository.AsQueryable() on userTrial.TrialId equals trial.Id
join cro in _croCompanyRepository.AsQueryable() on trial.CROId equals cro.Id into cc
from cro in cc.DefaultIfEmpty()
select new UserParticipateTrialDetail()
{
Code = trial.TrialCode,
CROName = cro.CROName,
Expedited = trial.Expedited,
Indication = trial.Indication,
UserType = userTrial.User.UserTypeRole.UserTypeShortName,
TrialId = trial.Id
};
};
return query.ToList();
}
#region Dashboard
/// <summary> 读片数分类统计[New] </summary>
@@ -604,10 +603,10 @@ namespace IRaCIS.Application.Services
Timepoint = w.Timepoint,
Adjudication = w.Adjudication,
Global = w.Global,
ReviewerCode = doctorItem.ReviewerCode,
ReviewerCode = doctorItem.ReviewerCode,
FirstName = doctorItem.FirstName,
LastName = doctorItem.LastName,
ChineseName = doctorItem.ChineseName
LastName = doctorItem.LastName,
ChineseName = doctorItem.ChineseName
};
return reviewerList.ToList();
}
@@ -835,8 +834,8 @@ namespace IRaCIS.Application.Services
Global = w.Global,
ReviewerCode = doctorItem.ReviewerCode,
FirstName = doctorItem.FirstName,
LastName = doctorItem.LastName,
ChineseName = doctorItem.ChineseName,
LastName = doctorItem.LastName,
ChineseName = doctorItem.ChineseName,
TrialCode = trialItem.TrialCode
};
@@ -1,5 +1,4 @@
using IRaCIS.Core.Infrastructure.ExpressionExtend;
using IRaCIS.Core.Application.Filter;
using IRaCIS.Core.Application.Filter;
using Microsoft.AspNetCore.Mvc;
using IRaCIS.Core.Application.Contracts.Dicom.DTO;
@@ -1,5 +1,4 @@
using IRaCIS.Core.Infrastructure.ExpressionExtend;
using IRaCIS.Application.Interfaces;
using IRaCIS.Application.Interfaces;
using IRaCIS.Application.Contracts;
using IRaCIS.Core.Application.Filter;
using Microsoft.AspNetCore.Mvc;
@@ -179,6 +179,8 @@ namespace IRaCIS.Application.Contracts
public string Code { get; set; } = String.Empty;
public string FirstName { get; set; } = String.Empty;
public string LastName { get; set; } = String.Empty;
public string FullName { get; set; } = String.Empty;
public string ChineseName { get; set; } = String.Empty;
public DateTime? EnrollTime { get; set; }
@@ -1,13 +1,12 @@
using AutoMapper;
using IRaCIS.Core.Infrastructure.ExpressionExtend;
using IRaCIS.Application.Contracts;
using IRaCIS.Core.Infra.EFCore;
using IRaCIS.Core.Domain.Share;
using System.Linq.Expressions;
using IRaCIS.Core.Application.Filter;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Authorization;
using IRaCIS.Core.Application.Auth;
using System.Linq.Dynamic.Core;
namespace IRaCIS.Application.Services
{
@@ -154,6 +153,8 @@ namespace IRaCIS.Application.Services
Code = doctor.ReviewerCode,
FirstName = doctor.FirstName,
LastName = doctor.LastName,
FullName=doctor.FullName,
ChineseName = doctor.ChineseName,
OutEnrollTime = intoGroup.OutEnrollTime,
@@ -178,41 +179,44 @@ namespace IRaCIS.Application.Services
};
var count = await doctorIntoGroupQueryable.CountAsync();
if (string.IsNullOrWhiteSpace(doctorSearchModel.SortField))
{
doctorIntoGroupQueryable = doctorIntoGroupQueryable.OrderByDescending("EnrollTime").ThenBy(u => u.Code);
}
else
{
if (doctorSearchModel.SortField == "FirstName" || doctorSearchModel.SortField == "LastName")
{
if (doctorSearchModel.Asc)
{
doctorIntoGroupQueryable = doctorIntoGroupQueryable.OrderBy("LastName").ThenBy(u => u.FirstName);
}
else
{
doctorIntoGroupQueryable = doctorIntoGroupQueryable.OrderByDescending("LastName").ThenByDescending(u => u.FirstName);
}
}
else
{
var propName = doctorSearchModel.SortField == "" ? "EnrollTime" : doctorSearchModel.SortField;
doctorIntoGroupQueryable = doctorSearchModel.Asc
? doctorIntoGroupQueryable.OrderBy(propName)
: doctorIntoGroupQueryable.OrderByDescending(propName);
}
}
//分页
doctorIntoGroupQueryable = doctorIntoGroupQueryable
.Skip((doctorSearchModel.PageIndex - 1) * doctorSearchModel.PageSize)
.Take(doctorSearchModel.PageSize);
//从数据库提取数据
var intoGroupList = doctorIntoGroupQueryable.ToList();
return await doctorIntoGroupQueryable.ToPagedListAsync(doctorSearchModel.PageIndex, doctorSearchModel.PageSize, doctorSearchModel.SortField == "" ? "EnrollTime" : doctorSearchModel.SortField, doctorSearchModel.Asc);
return new PageOutput<WorkLoadAndAgreementDTO>(doctorSearchModel.PageIndex,
doctorSearchModel.PageSize, count, intoGroupList);
//var count = await doctorIntoGroupQueryable.CountAsync();
//if (string.IsNullOrWhiteSpace(doctorSearchModel.SortField))
//{
// doctorIntoGroupQueryable = doctorIntoGroupQueryable.OrderByDescending("EnrollTime").ThenBy(u => u.Code);
//}
//else
//{
// if (doctorSearchModel.SortField == "FirstName" || doctorSearchModel.SortField == "LastName")
// {
// if (doctorSearchModel.Asc)
// {
// doctorIntoGroupQueryable = doctorIntoGroupQueryable.OrderBy("LastName").ThenBy(u => u.FirstName);
// }
// else
// {
// doctorIntoGroupQueryable = doctorIntoGroupQueryable.OrderByDescending("LastName").ThenByDescending(u => u.FirstName);
// }
// }
// else
// {
// var propName = doctorSearchModel.SortField == "" ? "EnrollTime" : doctorSearchModel.SortField;
// doctorIntoGroupQueryable = doctorSearchModel.Asc
// ? doctorIntoGroupQueryable.OrderBy(propName)
// : doctorIntoGroupQueryable.OrderBy(propName + " desc");
// }
//}
////分页
//doctorIntoGroupQueryable = doctorIntoGroupQueryable
// .Skip((doctorSearchModel.PageIndex - 1) * doctorSearchModel.PageSize)
// .Take(doctorSearchModel.PageSize);
////从数据库提取数据
//var intoGroupList = doctorIntoGroupQueryable.ToList();
//return new PageOutput<WorkLoadAndAgreementDTO>(doctorSearchModel.PageIndex,
// doctorSearchModel.PageSize, count, intoGroupList);
}