代码提交
							parent
							
								
									e46640f603
								
							
						
					
					
						commit
						5ff59c6321
					
				| 
						 | 
				
			
			@ -9644,6 +9644,13 @@
 | 
			
		|||
            <returns></returns>
 | 
			
		||||
            
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="M:IRaCIS.Application.Services.ReadingQuestionService.SynchronizeSystemCriterionQuestion(IRaCIS.Core.Application.Service.Reading.Dto.SynchronizeSystemCriterionInDto)">
 | 
			
		||||
            <summary>
 | 
			
		||||
            同步系统标准
 | 
			
		||||
            </summary>
 | 
			
		||||
            <param name="inDto"></param>
 | 
			
		||||
            <returns></returns>
 | 
			
		||||
        </member>
 | 
			
		||||
        <member name="M:IRaCIS.Application.Services.ReadingQuestionService.SynchronizeCriterion(IRaCIS.Core.Application.Service.Reading.Dto.SynchronizeCriterionInDto)">
 | 
			
		||||
            <summary>
 | 
			
		||||
            同步标准到项目新(2022-08-10)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -565,6 +565,14 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
 | 
			
		|||
	{
 | 
			
		||||
		public Guid OriginalId { get; set; }
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	public class SynchronizeSystemCriterionInDto
 | 
			
		||||
	{
 | 
			
		||||
		public Guid FromSystemCriterionId { get; set; }
 | 
			
		||||
		public Guid ToSystemCriterionId { get; set; }
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public class SynchronizeCriterionInDto
 | 
			
		||||
	{
 | 
			
		||||
		[NotDefault]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -827,6 +827,94 @@ namespace IRaCIS.Application.Services
 | 
			
		|||
            return ResponseOutput.Ok();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 同步系统标准
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        /// <param name="inDto"></param>
 | 
			
		||||
        /// <returns></returns>
 | 
			
		||||
        [HttpPost]
 | 
			
		||||
        public async Task SynchronizeSystemCriterionQuestion(SynchronizeSystemCriterionInDto inDto)
 | 
			
		||||
        {
 | 
			
		||||
            // 先找到项目系统问题Id和项目问题Id的对应关系
 | 
			
		||||
            var questionRelation = _readingQuestionSystemRepository.Where(x => x.ReadingQuestionCriterionSystemId == inDto.FromSystemCriterionId).ToDictionary(
 | 
			
		||||
                x => x.Id,
 | 
			
		||||
                x => NewId.NextGuid()
 | 
			
		||||
                );
 | 
			
		||||
           
 | 
			
		||||
 | 
			
		||||
            var newQuestionList = await _readingQuestionSystemRepository.Where(x => x.ReadingQuestionCriterionSystemId == inDto.FromSystemCriterionId).ProjectTo<AddOrUpdateReadingQuestionSystemInDto>(_mapper.ConfigurationProvider).ToListAsync();
 | 
			
		||||
            var copyNewQuestionList = newQuestionList.Clone();
 | 
			
		||||
 | 
			
		||||
            var needAddDatas = new List<ReadingQuestionSystem>();
 | 
			
		||||
 | 
			
		||||
            foreach (var x in newQuestionList)
 | 
			
		||||
            {
 | 
			
		||||
                var question = x.Clone();
 | 
			
		||||
                question.ReadingQuestionCriterionSystemId = inDto.ToSystemCriterionId;
 | 
			
		||||
                question.Id = questionRelation[question.Id.Value];
 | 
			
		||||
                if (question.ParentId != null)
 | 
			
		||||
                {
 | 
			
		||||
                    question.ParentId = questionRelation[question.ParentId ?? default(Guid)];
 | 
			
		||||
                }
 | 
			
		||||
                if (question.GroupId != null)
 | 
			
		||||
                {
 | 
			
		||||
                    question.GroupId = questionRelation[question.GroupId ?? default(Guid)];
 | 
			
		||||
                }
 | 
			
		||||
                if (question.RelevanceId != null)
 | 
			
		||||
                {
 | 
			
		||||
                    question.RelevanceId = questionRelation[question.RelevanceId ?? default(Guid)];
 | 
			
		||||
                }
 | 
			
		||||
                needAddDatas.Add(_mapper.Map<ReadingQuestionSystem>(question));
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            await _readingQuestionSystemRepository.BatchDeleteNoTrackingAsync(x => x.ReadingQuestionCriterionSystemId == inDto.ToSystemCriterionId);
 | 
			
		||||
            await _readingQuestionSystemRepository.AddRangeAsync(needAddDatas);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            var tableQuestionRelation = _readingTableQuestionSystemRepository.Where(x => x.SystemCriterionId == inDto.FromSystemCriterionId).ToDictionary(
 | 
			
		||||
                    x => x.Id,
 | 
			
		||||
                    x => NewId.NextGuid()
 | 
			
		||||
                    );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            var newtableQuestion =await _readingTableQuestionSystemRepository.Where(x => x.SystemCriterionId == inDto.FromSystemCriterionId).ToListAsync();
 | 
			
		||||
         
 | 
			
		||||
 | 
			
		||||
            var copyNewTableQuestionList = newtableQuestion.Clone();
 | 
			
		||||
 | 
			
		||||
            var needAddTableDatas = new List<ReadingTableQuestionSystem>();
 | 
			
		||||
            foreach (var x in newtableQuestion)
 | 
			
		||||
            {
 | 
			
		||||
                var tableQuestion = x.Clone();
 | 
			
		||||
 | 
			
		||||
             
 | 
			
		||||
                tableQuestion.SystemCriterionId = inDto.ToSystemCriterionId;
 | 
			
		||||
                tableQuestion.Id = tableQuestionRelation[tableQuestion.Id];
 | 
			
		||||
                tableQuestion.ReadingQuestionId = questionRelation[tableQuestion.ReadingQuestionId];
 | 
			
		||||
                if (tableQuestion.ParentId != null)
 | 
			
		||||
                {
 | 
			
		||||
                    tableQuestion.ParentId = tableQuestionRelation[tableQuestion.ParentId.Value];
 | 
			
		||||
                }
 | 
			
		||||
                if (tableQuestion.RelevanceId != null)
 | 
			
		||||
                {
 | 
			
		||||
                    tableQuestion.RelevanceId = tableQuestionRelation[tableQuestion.RelevanceId.Value]; ;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                if (tableQuestion.DependParentId != null)
 | 
			
		||||
                {
 | 
			
		||||
                    tableQuestion.DependParentId = tableQuestionRelation[tableQuestion.DependParentId.Value]; ;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                needAddTableDatas.Add(tableQuestion);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            await _readingTableQuestionSystemRepository.BatchDeleteNoTrackingAsync(x => x.SystemCriterionId == inDto.ToSystemCriterionId);
 | 
			
		||||
            await _readingTableQuestionSystemRepository.AddRangeAsync(needAddTableDatas);
 | 
			
		||||
            await _readingTableQuestionSystemRepository.SaveChangesAsync();
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 同步标准到项目新(2022-08-10)
 | 
			
		||||
        /// </summary>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -169,10 +169,10 @@ namespace IRaCIS.Core.Application.Service
 | 
			
		|||
            CreateMap<AddOrUpdateReadingQuestionCriterionSystemInDto, ReadingQuestionCriterionSystem>();
 | 
			
		||||
            CreateMap<ReadingQuestionCriterionSystem, ReadingQuestionCriterionSystemView>()
 | 
			
		||||
                  .ForMember(d => d.QuestionCount, u => u.MapFrom(s => s.ReadingQuestionSystemList.Count()));
 | 
			
		||||
                   //.ForMember(d => d.IsEnable, u => u.MapFrom(s => s.Dictionary.IsEnable))
 | 
			
		||||
                   //.ForMember(d => d.ShowOrder, u => u.MapFrom(s => s.Dictionary.ShowOrder)); 
 | 
			
		||||
 | 
			
		||||
            //.ForMember(d => d.IsEnable, u => u.MapFrom(s => s.Dictionary.IsEnable))
 | 
			
		||||
            //.ForMember(d => d.ShowOrder, u => u.MapFrom(s => s.Dictionary.ShowOrder)); 
 | 
			
		||||
 | 
			
		||||
            CreateMap<ReadingQuestionSystem, AddOrUpdateReadingQuestionSystemInDto>();
 | 
			
		||||
            CreateMap<AddOrUpdateReadingQuestionSystemInDto, ReadingQuestionSystem>();
 | 
			
		||||
            CreateMap<ReadingQuestionSystem, ReadingQuestionSystemView>()
 | 
			
		||||
               .ForMember(d => d.GroupName, u => u.MapFrom(s => s.GroupInfo==null?s.GroupName:s.GroupInfo.GroupName))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue