修改QC问题
							parent
							
								
									55d2ec2dd7
								
							
						
					
					
						commit
						b8e21e5265
					
				| 
						 | 
					@ -73,7 +73,9 @@ namespace IRaCIS.Core.Application.Contracts
 | 
				
			||||||
        public bool? IsEnable { get; set; }
 | 
					        public bool? IsEnable { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public Guid? TrialId { get; set; }
 | 
					        public bool IsDefeaultViewParent { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -95,6 +95,7 @@ namespace IRaCIS.Core.Application.Contracts
 | 
				
			||||||
                .WhereIf(queryQCQuestionConfigure.IsEnable != null,x=>x.IsEnable== queryQCQuestionConfigure.IsEnable)
 | 
					                .WhereIf(queryQCQuestionConfigure.IsEnable != null,x=>x.IsEnable== queryQCQuestionConfigure.IsEnable)
 | 
				
			||||||
                .WhereIf(!string.IsNullOrWhiteSpace(queryQCQuestionConfigure.QuestionName), t => t.QuestionName.Contains(queryQCQuestionConfigure.QuestionName))
 | 
					                .WhereIf(!string.IsNullOrWhiteSpace(queryQCQuestionConfigure.QuestionName), t => t.QuestionName.Contains(queryQCQuestionConfigure.QuestionName))
 | 
				
			||||||
                .WhereIf(!string.IsNullOrWhiteSpace(queryQCQuestionConfigure.Type), t => t.Type.Contains(queryQCQuestionConfigure.Type))
 | 
					                .WhereIf(!string.IsNullOrWhiteSpace(queryQCQuestionConfigure.Type), t => t.Type.Contains(queryQCQuestionConfigure.Type))
 | 
				
			||||||
 | 
					                .WhereIf(queryQCQuestionConfigure.IsDefeaultViewParent==true,t=>t.ParentId==null)
 | 
				
			||||||
                .OrderBy(t=>t.ShowOrder)
 | 
					                .OrderBy(t=>t.ShowOrder)
 | 
				
			||||||
                .ProjectTo<QCQuestionConfigureView>(_mapper.ConfigurationProvider);
 | 
					                .ProjectTo<QCQuestionConfigureView>(_mapper.ConfigurationProvider);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -40,7 +40,7 @@ namespace IRaCIS.Core.Application.Contracts
 | 
				
			||||||
            var trialQCQuestionQueryable = _trialQcQuestionRepository.Where(t => t.TrialId == queryTrialQCQuestionConfigure.TrialId)
 | 
					            var trialQCQuestionQueryable = _trialQcQuestionRepository.Where(t => t.TrialId == queryTrialQCQuestionConfigure.TrialId)
 | 
				
			||||||
               .WhereIf(!string.IsNullOrWhiteSpace(queryTrialQCQuestionConfigure.QuestionName), t => t.QuestionName.Contains(queryTrialQCQuestionConfigure.QuestionName))
 | 
					               .WhereIf(!string.IsNullOrWhiteSpace(queryTrialQCQuestionConfigure.QuestionName), t => t.QuestionName.Contains(queryTrialQCQuestionConfigure.QuestionName))
 | 
				
			||||||
               .WhereIf(!string.IsNullOrWhiteSpace(queryTrialQCQuestionConfigure.Type), t => t.Type.Contains(queryTrialQCQuestionConfigure.Type))
 | 
					               .WhereIf(!string.IsNullOrWhiteSpace(queryTrialQCQuestionConfigure.Type), t => t.Type.Contains(queryTrialQCQuestionConfigure.Type))
 | 
				
			||||||
                .WhereIf(queryTrialQCQuestionConfigure.IsEnable!=null, t => t.IsEnable== queryTrialQCQuestionConfigure.IsEnable)
 | 
					                .WhereIf(queryTrialQCQuestionConfigure.IsEnable != null, t => t.IsEnable == queryTrialQCQuestionConfigure.IsEnable)
 | 
				
			||||||
                .WhereIf(queryTrialQCQuestionConfigure.IsRequired != null, t => t.IsRequired == queryTrialQCQuestionConfigure.IsRequired)
 | 
					                .WhereIf(queryTrialQCQuestionConfigure.IsRequired != null, t => t.IsRequired == queryTrialQCQuestionConfigure.IsRequired)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -139,49 +139,113 @@ namespace IRaCIS.Core.Application.Contracts
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            await VerifyIsQCConfirmedAsync(trialId);
 | 
					            await VerifyIsQCConfirmedAsync(trialId);
 | 
				
			||||||
            var maxShowOrder = await _trialQcQuestionRepository.Where(x => x.TrialId == trialId).OrderByDescending(x=>x.ShowOrder).Select(x => x.ShowOrder).FirstOrDefaultAsync();
 | 
					 | 
				
			||||||
            batchList.ForEach(x =>
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                maxShowOrder++;
 | 
					 | 
				
			||||||
                x.ShowOrder= maxShowOrder;
 | 
					 | 
				
			||||||
                x.SystemQuestionId = x.Id.Value;
 | 
					 | 
				
			||||||
                x.Id = NewId.NextGuid();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            });
 | 
					            var maxShowOrder = await _trialQcQuestionRepository.Where(x => x.TrialId == trialId).OrderByDescending(x => x.ShowOrder).Select(x => x.ShowOrder).FirstOrDefaultAsync();
 | 
				
			||||||
 | 
					            maxShowOrder++;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            foreach (var item in batchList.Where(x=>x.ParentId!=null))
 | 
					            #region OLd
 | 
				
			||||||
 | 
					            //batchList.ForEach(x =>
 | 
				
			||||||
 | 
					            //{
 | 
				
			||||||
 | 
					            //    maxShowOrder++;
 | 
				
			||||||
 | 
					            //    x.ShowOrder = maxShowOrder;
 | 
				
			||||||
 | 
					            //    x.SystemQuestionId = x.Id.Value;
 | 
				
			||||||
 | 
					            //    x.Id = NewId.NextGuid();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            //});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            //foreach (var item in batchList.Where(x => x.ParentId != null))
 | 
				
			||||||
 | 
					            //{
 | 
				
			||||||
 | 
					            //    var parent = batchList.Where(x => x.SystemQuestionId == item.ParentId).FirstOrDefault();
 | 
				
			||||||
 | 
					            //    if (parent == null)
 | 
				
			||||||
 | 
					            //    {
 | 
				
			||||||
 | 
					            //        item.ParentId = null;
 | 
				
			||||||
 | 
					            //        item.ParentTriggerValue = String.Empty;
 | 
				
			||||||
 | 
					            //    }
 | 
				
			||||||
 | 
					            //    else
 | 
				
			||||||
 | 
					            //    {
 | 
				
			||||||
 | 
					            //        item.ParentId = parent.Id;
 | 
				
			||||||
 | 
					            //    }
 | 
				
			||||||
 | 
					            //}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #region New
 | 
				
			||||||
 | 
					            //查询所有的子问题
 | 
				
			||||||
 | 
					            var list = await _qCQuestionRepository.Where(t => t.ParentId != null).ToListAsync();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            var mappedList = _mapper.Map<List<TrialQCQuestion>>(list);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            var childList = new List<TrialQCQuestion>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            //遍历父层级的问题
 | 
				
			||||||
 | 
					            var batchConfigList = _mapper.Map<List<TrialQCQuestion>>(batchList.Where(t => t.ParentId == null));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            foreach (var item in batchConfigList.Where(t=>t.ParentId==null).OrderBy(t => t.ShowOrder))
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                var parent = batchList.Where(x => x.SystemQuestionId == item.ParentId).FirstOrDefault();
 | 
					                var oldParentId = item.Id;
 | 
				
			||||||
                if (parent == null)
 | 
					                item.Id = NewId.NextGuid();
 | 
				
			||||||
 | 
					                item.TrialId = trialId;
 | 
				
			||||||
 | 
					                item.ShowOrder = maxShowOrder++;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                var findChildList = GetChildList(oldParentId, item.Id, mappedList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                foreach (var findChild in findChildList)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    item.ParentId = null;
 | 
					
 | 
				
			||||||
                    item.ParentTriggerValue = String.Empty;
 | 
					                    findChild.TrialId = trialId;
 | 
				
			||||||
                }
 | 
					
 | 
				
			||||||
                else
 | 
					                    findChild.ShowOrder = maxShowOrder++;
 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    item.ParentId = parent.Id;
 | 
					 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                childList.AddRange(findChildList);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
           
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var batchConfigList = _mapper.Map<List<TrialQCQuestion>>(batchList);
 | 
					            #endregion
 | 
				
			||||||
            batchConfigList.ForEach(t => t.TrialId = trialId);
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            await _trialQcQuestionRepository.AddRangeAsync(batchConfigList);
 | 
					            await _trialQcQuestionRepository.AddRangeAsync(batchConfigList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            await _trialQcQuestionRepository.AddRangeAsync(childList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            var success = await _repository.SaveChangesAsync();
 | 
					            var success = await _repository.SaveChangesAsync();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return ResponseOutput.Result(success);
 | 
					            return ResponseOutput.Result(success);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        private List<TrialQCQuestion> GetChildList(Guid parentId, Guid newParentId, List<TrialQCQuestion> list)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            var childList = new List<TrialQCQuestion>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            var findlist = list.Where(t => t.ParentId == parentId).ToList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            foreach (var child in findlist)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                var oldParentId = child.Id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                child.Id = NewId.NextGuid();
 | 
				
			||||||
 | 
					                child.ParentId = newParentId;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                childList.Add(child);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                var findList = GetChildList(oldParentId, child.Id, list);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                childList.AddRange(findList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return childList;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        [Authorize(Policy = IRaCISPolicy.IQC)]
 | 
					        [Authorize(Policy = IRaCISPolicy.IQC)]
 | 
				
			||||||
        public async Task<IResponseOutput> AddOrUpdateTrialQCQuestionConfigure(TrialQCQuestionAddOrEdit addOrEditTrialQCQuestionConfigure)
 | 
					        public async Task<IResponseOutput> AddOrUpdateTrialQCQuestionConfigure(TrialQCQuestionAddOrEdit addOrEditTrialQCQuestionConfigure)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (await _trialQcQuestionRepository.AnyAsync(x =>x.TrialId== addOrEditTrialQCQuestionConfigure.TrialId&& x.Id != addOrEditTrialQCQuestionConfigure.Id && x.ShowOrder == addOrEditTrialQCQuestionConfigure.ShowOrder))
 | 
					            if (await _trialQcQuestionRepository.AnyAsync(x => x.TrialId == addOrEditTrialQCQuestionConfigure.TrialId && x.Id != addOrEditTrialQCQuestionConfigure.Id && x.ShowOrder == addOrEditTrialQCQuestionConfigure.ShowOrder))
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                throw new BusinessValidationFailedException("序号重复,操作失败");
 | 
					                throw new BusinessValidationFailedException("序号重复,操作失败");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -225,6 +225,7 @@ namespace IRaCIS.Core.Application.Service
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            CreateMap<QCQuestionAddOrEdit, QCQuestion>();
 | 
					            CreateMap<QCQuestionAddOrEdit, QCQuestion>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            CreateMap<QCQuestion, TrialQCQuestion>();
 | 
				
			||||||
            CreateMap<TrialQCQuestionAddOrEdit, TrialQCQuestion>();
 | 
					            CreateMap<TrialQCQuestionAddOrEdit, TrialQCQuestion>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            CreateMap<TrialQCQuestionConfigureBatchAdd, TrialQCQuestion>();
 | 
					            CreateMap<TrialQCQuestionConfigureBatchAdd, TrialQCQuestion>();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -101,9 +101,13 @@ namespace IRaCIS.Application.Services
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            //await _repository.BatchUpdateAsync<DataInspection>(t => t.TrialId == Guid.Parse("40400000-3e2c-0016-239b-08da581f0e74") && t.EntityName== "ClinicalDataTrialSet", t => new DataInspection() { CreateTime= DateTime.Now.AddMonths(-2) }  );
 | 
					            //await _repository.BatchUpdateAsync<DataInspection>(t => t.TrialId == Guid.Parse("40400000-3e2c-0016-239b-08da581f0e74") && t.EntityName== "ClinicalDataTrialSet", t => new DataInspection() { CreateTime= DateTime.Now.AddMonths(-2) }  );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            await _visitTaskRepositoryy.UpdatePartialFromQueryAsync( Guid.Parse("78360000-3E2C-0016-9B53-08DA6A002040"), c => new VisitTask() { UpdateTime = DateTime.Now });
 | 
					            //await _visitTaskRepositoryy.UpdatePartialFromQueryAsync( Guid.Parse("78360000-3E2C-0016-9B53-08DA6A002040"), c => new VisitTask() { UpdateTime = DateTime.Now });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            await _visitTaskRepositoryy.UpdatePartialFromQueryAsync( Guid.Parse("78360000-3E2C-0016-9B53-08DA6A002040"), c => new VisitTask() { UpdateTime = DateTime.Now.AddMinutes(1) });
 | 
					            //await _visitTaskRepositoryy.UpdatePartialFromQueryAsync( Guid.Parse("78360000-3E2C-0016-9B53-08DA6A002040"), c => new VisitTask() { UpdateTime = DateTime.Now.AddMinutes(1) });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            var list1 = await _repository.Where<Dictionary>().Select(t => t.TranslateValue(t.Value, t.ValueCN,true)).ToListAsync();
 | 
				
			||||||
 | 
					            var list2 = await _repository.Where<Dictionary>().Select(t => t.TranslateValue(t.Value, t.ValueCN, false)).ToListAsync();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            await _repository.SaveChangesAsync();
 | 
					            await _repository.SaveChangesAsync();
 | 
				
			||||||
            return _userInfo.LocalIp;
 | 
					            return _userInfo.LocalIp;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,3 +1,4 @@
 | 
				
			||||||
 | 
					using EntityFrameworkCore.Projectables;
 | 
				
			||||||
using IRaCIS.Core.Domain.Share;
 | 
					using IRaCIS.Core.Domain.Share;
 | 
				
			||||||
using System;
 | 
					using System;
 | 
				
			||||||
using System.Collections.Generic;
 | 
					using System.Collections.Generic;
 | 
				
			||||||
| 
						 | 
					@ -62,5 +63,9 @@ namespace IRaCIS.Core.Domain.Models
 | 
				
			||||||
        public string MappedValue { get; set; }
 | 
					        public string MappedValue { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        [Projectable]
 | 
				
			||||||
 | 
					        public  string TranslateValue( string value, string valueCN,bool isCN) => isCN?valueCN:value;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue