public ActionResult GetScoreModelVersionAndEchartsData(int engineeringId) { var engineering = new EngineeringService().Get(e => e.Id == engineeringId); if (engineering == null) { throw new ArgumentNullException(nameof(engineering)); } if (!new PermissionService().CanUserVisitProject(CurrentCustomer, engineering.ProjectId)) { return(NoAuthorityJson()); } if (CurrentCustomer.Organization.OrganizationType != OrganizationType.Censorship) { return(NoAuthorityJson()); } var lamda = PrepareEchartsDataLamda(engineering); var comments = new CommentService().GetCommentByRoleAndEngineeringFileId(CurrentCustomer.GetCurrentRoles(0, engineering).OrderBy(e => (int)e).FirstOrDefault(), engineering.EngineeringFiles.FirstOrDefault(e => e.FileType == FileType.Model).FileVersions.OrderByDescending(e => e.UpLoadeTime).FirstOrDefault().Id).Where(lamda).ToList(); var echartsData = PrepareEchartData(comments); var modelVersions = PrepareScoreModelVersionModel(engineering); return(Json(new { result = true, echartsData = echartsData, modelVersions = modelVersions }, JsonRequestBehavior.AllowGet)); }
protected DrawingListModel PrepareDrawingListModel(PagedList <FileVersion> list, int projectId) { DrawingListModel model = new DrawingListModel(); var project = new ProjectService().Get(e => e.Id == projectId); if (project == null) { throw new ArgumentNullException(nameof(project)); } model.ProjectIsFiled = project.IsProjectFiled(); model.Roles = CurrentCustomer.GetCurrentRoles(projectId); foreach (var node in list) { model.Drawings.Add(new DrawingListModel.DrawingModel() { Description = node.UploadDescription, DrawingCatalog = DictionaryService.DrawingCatalogDictionary.Find(e => e.Id == node.DrawingCatalog).DisplayName, DrawingId = node.Id, DrawingName = node.FileName, DrawingStatus = node.Status, FileSize = node.FileSize, DrawingVersion = node.VersionNo, UpdateTime = node.UpdateStateTime.ToString("yyyy-MM-dd HH:mm:ss"), Uri = node.BIMFileId, }); } return(model); }
public ActionResult GetModelProfessionState(int modelVersionId, int professionId) { var modelVersion = new FileVersionService().Get(e => e.Id == modelVersionId); if (modelVersion == null) { throw new ArgumentNullException(nameof(modelVersion)); } if (!new PermissionService().CanUserVisitProject(CurrentCustomer, modelVersion.EngineeringFile.Engineering.ProjectId)) { return(NoAuthorityJson()); } var modelProfession = new ModelProfessionService().Get(e => e.ModelVersionId == modelVersionId && e.ProfessionId == professionId); var customerRoles = CurrentCustomer.CustomerRoles.Where(e => e.ProjectId == modelVersion.EngineeringFile.Engineering.ProjectId && e.FinishTime == null); string roleDes = CurrentCustomer.GetCurrentRoleDes(professionId, modelVersion.EngineeringFile.Engineering); ModelProfessionOperateModel operateModel = null; if (professionId != 0 && modelProfession != null) { var roles = CurrentCustomer.GetCurrentRoles(professionId, modelProfession.EngineerFile.Engineering); operateModel = PrepareOperateModel(modelProfession, roles); } return(Json(new { result = true, roleDes = roleDes, htmlStr = base.RenderPartialViewToString("_ModelProfessionOperate", operateModel) }, JsonRequestBehavior.AllowGet)); }
protected ModelReviewedListModel PrepareModelReviewedListModel(PagedList <FileVersion> models, int projectId) { ModelReviewedListModel model = new ModelReviewedListModel(); if (models.Count > 0) { var lastModelVersion = models.First().EngineeringFile.FileVersions.OrderByDescending(e => e.UpLoadeTime).First(); var roles = CurrentCustomer.GetCurrentRoles(0, lastModelVersion.EngineeringFile.Engineering); foreach (var node in models) { var query = new CommentService().GetCommentByRoleAndEngineeringFileId(roles.OrderBy(e => (int)e).FirstOrDefault(), node.Id); model.ModelReviewedList.Add(new ModelReviewedListModel.ModelReviewedModel() { UploadDescription = node.UploadDescription, ModelVersionId = node.Id, ModelVersionNo = node.VersionNo, UpdateTime = node.UpdateStateTime.ToString("yyyy-MM-dd HH:mm:ss"), CommnetCount = query.Count(), }); } } model.ProjectId = projectId; model.OrganizationType = CurrentCustomer.Organization.OrganizationType; return(model); }
protected DrawingSeriesListModel PrepareDrawingSeriesListModel(PagedList <EngineeringFile> drawings, int projectId, int engineeringId, int profeesionId = 0, string selectedStateId = "") { DrawingSeriesListModel model = new DrawingSeriesListModel(); var project = new ProjectService().Get(e => e.Id == projectId); if (project == null) { throw new ArgumentNullException(nameof(project)); } var engineering = new EngineeringService().Get(e => e.Id == engineeringId); if (engineering == null) { throw new ArgumentNullException(nameof(engineering)); } model.Roles = CurrentCustomer.GetCurrentRoles(profeesionId, engineering); model.ProjectIsFiled = project.IsProjectFiled(); foreach (var drawing in drawings) { model.DrawingSeriesList.Add(new DrawingSeriesListModel.DrawingSeriesModel() { Description = drawing.FileVersions.Where(e => e.FileType == FileType.Drawing).OrderByDescending(e => e.UpLoadeTime).FirstOrDefault()?.UploadDescription, DrawingVersion = drawing.FileVersions.Where(e => e.FileType == FileType.Drawing).OrderByDescending(e => e.UpLoadeTime).FirstOrDefault()?.VersionNo, FileSize = drawing.FileVersions.Where(e => e.FileType == FileType.Drawing).OrderByDescending(e => e.UpLoadeTime).FirstOrDefault()?.FileSize, DrawingCategoryId = drawing.DrawingCatalogId.GetValueOrDefault(), DrawingCategory = DictionaryService.DrawingCatalogDictionary.FirstOrDefault(e => e.Id == drawing.DrawingCatalogId)?.DisplayName, DrawingProfessionId = drawing.DrawingProfessionId.GetValueOrDefault(), DrawingProfession = DictionaryService.DrawingProfessionDictionary.FirstOrDefault(e => e.Id == drawing.DrawingProfessionId)?.DisplayName, DrawingName = drawing.FileName, DrawingSeriesId = drawing.Id, DrawingStatus = drawing.Status, PicUri = drawing.FileVersions.OrderByDescending(i => i.UpLoadeTime).FirstOrDefault()?.BIMFileId, UpdateTime = drawing.UpLoadTime.ToString("yyyy-MM-dd HH:mm:ss"), }); } //TODO 二期添加关于图纸审核的流程 model.AvaliableStatus.Add(new SelectListItem() { Text = "已上传", Value = "", Selected = true }); return(model); }
protected PagedList <FileVersion> GetAllModelVersion(int pageIndex, int pageSize, Expression <Func <FileVersion, bool> > lamda, int engineeringId) { var model = new EngineeringFileService().Get(e => e.EngineeringId == engineeringId && e.FileType == FileType.Model); if (model == null) { return(new PagedList <FileVersion>()); } var customerRoles = CurrentCustomer.GetCurrentRoles(0, model.Engineering); var query = new FileVersionService().GetListByRoleAndEngineeingId(customerRoles.OrderBy(e => (int)e).FirstOrDefault(), model.Id); query = query.Where(lamda).OrderByDescending(e => e.UpLoadeTime); return(new PagedList <FileVersion>(query, pageIndex, pageSize)); }
protected List <SelectListItem> PrepareScoreModelVersionModel(Engineering engineering) { var modelId = engineering.EngineeringFiles.FirstOrDefault(e => e.FileType == FileType.Model)?.Id; if (!modelId.HasValue) { return(new List <SelectListItem>()); } return(new FileVersionService().GetListByRoleAndEngineeingId(CurrentCustomer.GetCurrentRoles(0, engineering).OrderBy(e => (int)e).FirstOrDefault(), modelId.Value).OrderByDescending(e => e.UpLoadeTime).ToList().Select(e => { return new SelectListItem() { Text = string.Format("{0}-{1}", e.FileName, e.VersionNo), Value = e.Id.ToString(), }; }).ToList()); }
public ActionResult CommentRecordModelPagaData(int pageIndex, int pageSize, int commentId) { var comment = new CommentService().Get(e => e.Id == commentId); if (comment == null) { throw new ArgumentNullException(nameof(comment)); } if (!new PermissionService().CanUserVisitProject(CurrentCustomer, comment.EngineeringFile.Engineering.ProjectId)) { return(NoAuthorityJson()); } var roles = CurrentCustomer.GetCurrentRoles(comment); var query = new CommentRecordService().GetCommentRecordByRoleAndCommentId(roles.OrderBy(e => (int)e).FirstOrDefault(), commentId).OrderBy(e => e.UpdateTime); var records = new PagedList <CommentRecord>(query, pageIndex, pageSize); var recordModels = PrepareCommentRecordModels(records); return(Json(new { result = true, listHtml = this.RenderPartialViewToString("_CommentRecord", recordModels), total = records.TotalCount }, JsonRequestBehavior.AllowGet)); }
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); }
protected ModelListModel PrepareModelListModel(PagedList <FileVersion> models, int projectId, int engineeringId, string selectedState = "") { ModelListModel model = new ModelListModel(); var project = new ProjectService().Get(e => e.Id == projectId); if (project == null) { throw new ArgumentNullException(nameof(project)); } model.ProjectIsFiled = project.IsProjectFiled(); model.ProjectId = project.Id; model.Roles = CurrentCustomer.GetCurrentRoles(projectId); //检查是否能上传模型 var engineeringFile = new EngineeringFileService().Get( ef => ef.EngineeringId == engineeringId && ef.FileType == FileType.Model); if (engineeringFile == null || engineeringFile.Status == FlowCode.Pre_DesignCompany_AwaitUpload || engineeringFile.Status == FlowCode.Pre_DesignCompany_DeletedCurrent || engineeringFile.Status == FlowCode.Pre_BuildCompany_Reject_DesignCompany || engineeringFile.Status == FlowCode.Pre_AuditCompany_Reject_DesignCompany || engineeringFile.Status == FlowCode.DesignCompany_DeletedCurrent || engineeringFile.Status == FlowCode.BuildCompany_Reject_DesignCompany || engineeringFile.Status == FlowCode.AuditCompany_ProjectManager_Confrim_CurrentProcess_End) { model.CanUploadModel = true; } foreach (var node in models) { model.ModelList.Add(new ModelListModel.ModelModel() { UploadDescription = node.UploadDescription, RejectDescription = node.RejectDescription, ModelVersionId = node.Id, ModelStatus = node.Status, ModelVersionNo = node.VersionNo, UpdateTime = node.UpdateStateTime.ToString("yyyy-MM-dd HH:mm:ss"), }); } model.SelectedStatus = selectedState; model.AvaliableStatus.Add(new SelectListItem() { Text = "全部", Value = "", Selected = string.IsNullOrWhiteSpace(selectedState) }); WorkFlow.GetAllModelStatus().ForEach(e => { model.AvaliableStatus.Add(new SelectListItem() { Text = e, Value = e, Selected = e == selectedState, }); }); return(model); }