维护数据sql 变更

This commit is contained in:
2023-01-17 14:48:06 +08:00
parent 225569ce7c
commit 60a75aaaa1
4 changed files with 79 additions and 49 deletions
@@ -123,7 +123,7 @@ namespace IRaCIS.Application.Services
ReadingClinicalDataId = entity.Id,
}).ToList();
_mapper.Map(indto, entity);
@@ -185,7 +185,7 @@ namespace IRaCIS.Application.Services
List<GetCRCClinicalDataOutDto> cRCClinicalDataList = await _readingClinicalDataRepository.Where(x => x.ReadingId == inDto.SubjectVisitId)
.WhereIf(inDto.IsBaseline, x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Subject|| x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit)
.WhereIf(inDto.IsBaseline, x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.Subject || x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit)
.WhereIf(!inDto.IsBaseline, x => x.ClinicalDataTrialSet.ClinicalDataLevel == ClinicalLevel.SubjectVisit)
.Where(x => x.ClinicalDataTrialSet.TrialId == inDto.TrialId && x.ClinicalDataTrialSet.UploadRole == UploadRole.CRC)
.Select(x => new GetCRCClinicalDataOutDto()
@@ -241,7 +241,7 @@ namespace IRaCIS.Application.Services
private async Task AddCRCClinicalData(GetCRCClinicalDataInDto inDto)
{
var cRCClinicalDataIds = await _clinicalDataTrialSetRepository.Where(x => x.TrialId == inDto.TrialId && x.UploadRole == UploadRole.CRC && x.IsConfirm)
.WhereIf(inDto.IsBaseline, x=>x.ClinicalDataLevel == ClinicalLevel.Subject || x.ClinicalDataLevel == ClinicalLevel.SubjectVisit )
.WhereIf(inDto.IsBaseline, x => x.ClinicalDataLevel == ClinicalLevel.Subject || x.ClinicalDataLevel == ClinicalLevel.SubjectVisit)
.WhereIf(!inDto.IsBaseline, x => x.ClinicalDataLevel == ClinicalLevel.SubjectVisit)
.Select(x => x.Id).ToListAsync();
@@ -274,13 +274,13 @@ namespace IRaCIS.Application.Services
public async Task<IResponseOutput> ReadClinicalDataSign(ReadingClinicalDataSignIndto inDto)
{
var data = await _readingClinicalDataRepository.FirstOrDefaultAsync(t => t.Id == inDto.ReadingClinicalDataId);
if (data.ReadingClinicalDataState != ReadingClinicalDataStatus.HaveChecked)
{
throw new BusinessValidationFailedException("当前临床数据状态不是已核查状态,不允许签名!");
throw new BusinessValidationFailedException("当前临床数据状态不是已核查状态,不允许签名!");
}
data.IsSign = true;
data.ReadingClinicalDataState = ReadingClinicalDataStatus.HaveSigned;
@@ -345,7 +345,7 @@ namespace IRaCIS.Application.Services
}
}
else
{
@@ -385,7 +385,8 @@ namespace IRaCIS.Application.Services
//维护 IsFrontTaskNeedSignButNotSign 在添加任务哪里用触发器也维护了
var visitTaskIdQueryable = _visitTaskRepository.Where(visitTaskLambda) //该Subject 该标准的任务
//小于自己任务号的任务 存在需要签名 但是没签名
.Where(t => t.Subject.SubjectVisitTaskList.AsQueryable().Where(visitTaskLambda).Any(c => c.IsNeedClinicalDataSign == true && c.IsClinicalDataSign == false && c.VisitTaskNum < t.VisitTaskNum && t.IsFrontTaskNeedSignButNotSign==false))
.Where(t => t.Subject.SubjectVisitTaskList.AsQueryable().Where(visitTaskLambda).Any(c => c.IsNeedClinicalDataSign == true && c.IsClinicalDataSign == false && c.VisitTaskNum < t.VisitTaskNum)
&& t.IsFrontTaskNeedSignButNotSign == false )
.Select(t => t.Id);
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => visitTaskIdQueryable.Contains(t.Id), u => new VisitTask()
@@ -395,9 +396,10 @@ namespace IRaCIS.Application.Services
var visitTaskIdQueryable2= _visitTaskRepository.Where(visitTaskLambda) //该Subject 该标准的任务
//小于自己任务号的任务 存在需要签名 但是没签名
.Where(t =>! t.Subject.SubjectVisitTaskList.AsQueryable().Where(visitTaskLambda).Any(c => c.IsNeedClinicalDataSign == true && c.IsClinicalDataSign == false && c.VisitTaskNum < t.VisitTaskNum && t.IsFrontTaskNeedSignButNotSign == true))
var visitTaskIdQueryable2 = _visitTaskRepository.Where(visitTaskLambda) //该Subject 该标准的任务
//小于自己任务号的任务 存在需要签名 但是没签名
.Where(t => !t.Subject.SubjectVisitTaskList.AsQueryable().Where(visitTaskLambda).Any(c => c.IsNeedClinicalDataSign == true && c.IsClinicalDataSign == false && c.VisitTaskNum < t.VisitTaskNum)
&& t.IsFrontTaskNeedSignButNotSign == true )
.Select(t => t.Id);
await _visitTaskRepository.BatchUpdateNoTrackingAsync(t => visitTaskIdQueryable2.Contains(t.Id), u => new VisitTask()