Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }