protected List <ProfessionEvaluateModel> PrepareProfessionEvaluateModels(List <ModelProfession> modelProfessions, out int canPass) { var result = new List <ProfessionEvaluateModel>(); if (modelProfessions.Count == 0) { canPass = 0; return(result); } var engineeringId = modelProfessions.First().EngineerFile.EngineeringId; var customerRoles = new CustomerRoleMappingService().GetMany(e => engineeringId == e.EngineeringId && e.ProfessionId != 0 && e.FinishTime == null); canPass = 1; foreach (var modelProfession in modelProfessions) { var res = "未知"; var pass = DictionaryService.PassScoreDictionary.FirstOrDefault(i => i.ExtraValue1 == modelProfession.ProfessionId.ToString())?.ExtraValue2; if (!string.IsNullOrWhiteSpace(pass) && modelProfession.Grade.HasValue) { if (Convert.ToDouble(pass) > modelProfession.Grade) { res = "不合格"; canPass = 0; } else { res = "合格"; } } else { canPass = 1; } result.Add(new ProfessionEvaluateModel() { Result = res, ProfessionName = DictionaryService.CommentProfessionDictionary.FirstOrDefault(i => i.Id == modelProfession.ProfessionId)?.DisplayName, CheckerName = customerRoles.FirstOrDefault(i => i.ProfessionId == modelProfession.ProfessionId && i.Role == Role.Checker)?.CustomerName, ReviewerName = customerRoles.FirstOrDefault(i => i.ProfessionId == modelProfession.ProfessionId && i.Role == Role.Reviewer)?.CustomerName, Grade = modelProfession.Grade.HasValue ? Math.Round(modelProfession.Grade.Value, 2).ToString() : "", }); } return(result); }
protected List <CommentModel> PrepareCommentModelPageData(PagedList <Comment> comments, EngineeringFile model) { var list = new List <CommentModel>(); var customerRoles = new CustomerRoleMappingService().GetMany(e => e.ProjectId == model.Engineering.ProjectId && e.EngineeringId == model.EngineeringId && (e.Role == Role.Checker || e.Role == Role.Reviewer)).ToList(); comments.ForEach(comment => { var commentType = DictionaryService.DesignCommentTypeDictionary.FirstOrDefault(e => e.Id == comment.CommentTypeId); if (commentType == null) { commentType = DictionaryService.IntegralityCommentTypeDictionary.FirstOrDefault(e => e.Id == comment.CommentTypeId); } string typeDes; if (commentType == null) { typeDes = comment.CommentTypeId == 0 ? "专业不完整" : "专业完整"; } else { typeDes = commentType.DisplayName; } var node = new CommentModel() { Checker = customerRoles.FirstOrDefault(e => e.ProfessionId == comment.ProfessionId && e.Role == Role.Checker)?.CustomerName, CommentType = typeDes, CommnenId = comment.Id, EngineeringFileCommentId = comment.EngineeringFileCommentId, CommnetStatus = comment.Status, CreateVersion = comment.CreateVersion.VersionNo, Floor = comment.Floor, Operation = comment.Operation, Reviewer = customerRoles.FirstOrDefault(e => e.ProfessionId == comment.ProfessionId && e.Role == Role.Reviewer)?.CustomerName, UpdateTime = comment.UpdateTime.ToString("yyyy-MM-dd HH:mm:ss"), }; list.Add(node); }); return(list); }
protected CommentDetailModel PrepareCommentDetailModel(Comment comment) { CommentDetailModel model = new CommentDetailModel(); var engineering = comment.EngineeringFile.Engineering; var organizations = new OrganizationProjectMappingService().GetMany(e => e.ProjectId == engineering.ProjectId && e.FinishTime == null); var customerRoles = new CustomerRoleMappingService().GetMany(e => e.ProjectId == engineering.ProjectId && e.FinishTime == null && ((e.Role == Role.CensorshipManager || e.Role == Role.DesignCompanyManager || e.Role == Role.BuildingCompanyManager) || ((e.Role == Role.Checker || e.Role == Role.Reviewer) && e.EngineeringId == engineering.Id && e.ProfessionId == comment.ProfessionId))); model.BuildingCompany = organizations.FirstOrDefault(e => e.OrganizationType == OrganizationType.BuildingCompany)?.OrganizationName; model.Censorship = organizations.FirstOrDefault(e => e.OrganizationType == OrganizationType.Censorship)?.OrganizationName; model.DesignCompany = organizations.FirstOrDefault(e => e.OrganizationType == OrganizationType.DesignCompany)?.OrganizationName; model.BuildingCompanyManager = customerRoles.FirstOrDefault(e => e.Role == Role.BuildingCompanyManager)?.CustomerName; model.CensorshipManager = customerRoles.FirstOrDefault(e => e.Role == Role.CensorshipManager)?.CustomerName; model.DesignCompanyManager = customerRoles.FirstOrDefault(e => e.Role == Role.DesignCompanyManager)?.CustomerName; model.Checker = customerRoles.FirstOrDefault(e => e.Role == Role.Checker)?.CustomerName; model.Reviewer = customerRoles.FirstOrDefault(e => e.Role == Role.Reviewer)?.CustomerName; var commentType = DictionaryService.IntegralityCommentTypeDictionary.FirstOrDefault(e => e.Id == comment.CommentTypeId); commentType = commentType ?? DictionaryService.DesignCommentTypeDictionary.FirstOrDefault(e => e.Id == comment.CommentTypeId); string typeDes; if (commentType == null) { typeDes = comment.CommentTypeId == 0 ? "专业不完整" : "专业完整"; } else { typeDes = commentType.DisplayName; } model.CommentType = typeDes; var profession = DictionaryService.CommentProfessionDictionary.FirstOrDefault(e => e.Id == comment.ProfessionId); model.Profession = profession?.DisplayName; model.ProjectName = engineering.Project.ProjectName; model.IsProjectFiled = engineering.Project.IsProjectFiled(); model.CommentId = comment.Id; model.EngineeringName = engineering.Name; model.CreateTime = comment.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"); model.CreateVersionId = comment.CreateVersionId.ToString(); model.Description = comment.Description; model.Status = comment.Status; model.Floor = comment.Floor; model.ReturnDes = comment.CommentRecords.OrderByDescending(e => e.UpdateTime).FirstOrDefault(e => e.Status == FlowCode.DesignCompany_Disagree_AuditCompany_Comment)?.Reason; model.Roles = CurrentCustomer.GetCurrentRoles(comment); var commentProfession = comment.EngineeringFile.ModelProfessions.OrderByDescending(e => e.ModelVersionId).FirstOrDefault(e => e.ProfessionId == comment.ProfessionId); if (commentProfession == null) { throw new ArgumentNullException(nameof(commentProfession)); } model.ProfessionStatus = commentProfession.Status; model.CurrentModelVersionId = commentProfession.ModelVersionId; model.commentButton = new CommentDetailModel.CommentButtom() { CommentId = comment.Id, Status = comment.Status, ProfessionId = comment.ProfessionId, ProfessionStatus = commentProfession.Status, Roles = model.Roles, CurrentModelVersionId = commentProfession.ModelVersionId, ModelStatus = comment.EngineeringFile.Status, IsInCommentDetail = true, }; model.Annotations = comment.BIMElements.Where(e => e.IsDelete == false).Select(element => { return(new CommentDetailModel.AnnotationModel() { AnnotationId = element.BIMId, HDBimThumbUrl = element.HDBimThumbUrl, Uri = element.BimThumb, Name = element.Name, type = element.BIMElementType }); }).ToList(); //上一页,下一页 var nearbyCommentsQuery = new CommentService().TableNoTracking.Where(e => e.EngineeringFileId == comment.EngineeringFileId); model.PreCommentId = nearbyCommentsQuery.Where(e => e.Id < comment.Id).OrderByDescending(e => e.CreateTime).FirstOrDefault()?.Id ?? 0; model.NextCommentId = nearbyCommentsQuery.Where(e => e.Id > comment.Id).OrderBy(e => e.CreateTime).FirstOrDefault()?.Id ?? 0; return(model); }