private string GenPrintReimageAttachment(ReimageInfo reimageInfo, ReimagePackage entity, PrintFileType fileType) { var storeInfo = StoreBasicInfo.GetStore(reimageInfo.USCode); StoreBasicInfo store = storeInfo.StoreBasicInfo; //生成Print文件 var printDic = new Dictionary <string, string>(); printDic.Add("WorkflowName", FlowCode.Reimage); printDic.Add("ProjectID", entity.ProjectId); printDic.Add("USCode", reimageInfo.USCode); printDic.Add("Region", store.RegionENUS); printDic.Add("Market", store.MarketENUS); printDic.Add("City", store.CityENUS); printDic.Add("AddressZHCN", store.AddressZHCN); printDic.Add("OpenDate", store.OpenDate.ToString("yyyy-MM-dd")); if (store.CloseDate.HasValue && store.CloseDate.Value.Year == 1900) { printDic.Add("ClosureDate", string.Empty); } else { printDic.Add("ClosureDate", store.CloseDate.HasValue ? (store.CloseDate.Value.ToString("yyyy-MM-dd")) : ""); } printDic.Add("AssetsManager", storeInfo.StoreDevelop.AssetMgrName); printDic.Add("AssetsRep", storeInfo.StoreDevelop.AssetRepName); printDic.Add("StoreAge", (DateTime.Now.Year - store.OpenDate.Year).ToString()); var currentLeaseENDYear = storeInfo.CurrentYear - int.Parse(storeInfo.StoreContractInfo.EndYear); printDic.Add("CurrentLeaseENDYear", currentLeaseENDYear.ToString()); printDic.Add("StoreNameEN", store.NameENUS); printDic.Add("StoreNameCN", store.NameENUS); var RmgSummaryentity = ReimageSummary.FirstOrDefault(e => e.ProjectId.Equals(entity.ProjectId) && e.IsHistory == false); var financialPreanalysis = FinancialPreanalysis.FirstOrDefault(e => e.RefId.Equals(RmgSummaryentity.Id)); printDic.Add("SalesBuildingInvestment", financialPreanalysis.SalesBuildingInvestment); printDic.Add("NoneSalesBuildingInvst", financialPreanalysis.NoneSalesBuildingInvst); printDic.Add("TTMSales", financialPreanalysis.TTMSales.HasValue ? Math.Round(financialPreanalysis.TTMSales.Value, 2).ToString() : string.Empty); var reimage = ReimageConsInfo.GetConsInfo(entity.ProjectId, ""); ReinvestmentCost reinCost = ReinvestmentCost.FirstOrDefault(e => e.ConsInfoID == reimage.Id); printDic.Add("TotalReinvestmentNorm", reinCost.TotalReinvestmentNorm); printDic.Add("TotalSalesInc", financialPreanalysis.TotalSalesInc); printDic.Add("ROI", financialPreanalysis.ROI); ////printDic.Add("SalesInc", financialPreanalysis.ROI); printDic.Add("PaybackYears", financialPreanalysis.PaybackYears); printDic.Add("StoreCM", financialPreanalysis.StoreCM); printDic.Add("EstimatedWriteOffCost", financialPreanalysis.EstimatedWriteOffCost); printDic.Add("MarginInc", financialPreanalysis.MarginInc); printDic.Add("ISDWIP", financialPreanalysis.ISDWIP); printDic.Add("CurrStorePricingTier", financialPreanalysis.CurrentPriceTier); printDic.Add("SPTAR", financialPreanalysis.SPTAR); //Submission and Approval Records - 只显示通过意见 List <SubmissionApprovalRecord> recordList = new List <SubmissionApprovalRecord>(); //Submission and Approval Records Details — 所有意见 List <SubmissionApprovalRecord> recordDetailList = new List <SubmissionApprovalRecord>(); ProjectComment projectCommentBll = new ProjectComment(); ProjectCommentCondition condition = new ProjectCommentCondition(); var package = ReimagePackage.Get(entity.ProjectId); condition.RefTableName = ReimagePackage.TableName; condition.RefTableId = entity.Id; condition.SourceCode = FlowCode.Reimage; var commentList = VProjectComment.SearchVListForPDF(condition); var commentDetailList = VProjectComment.SearchVList(condition); SubmissionApprovalRecord record = null; foreach (var item in commentList) { record = new SubmissionApprovalRecord(); record.ActionName = item.ActionDesc; if (item.CreateTime != null) { record.OperationDate = item.CreateTime.Value; } record.OperatorID = item.UserAccount; record.OperatorName = item.UserNameENUS; record.OperatorTitle = item.PositionName; record.Comments = item.Content; recordList.Add(record); } foreach (var item in commentDetailList) { record = new SubmissionApprovalRecord(); record.ActionName = item.ActionDesc; if (item.CreateTime != null) { record.OperationDate = item.CreateTime.Value; } record.OperatorID = item.UserAccount; record.OperatorName = item.UserNameENUS; record.OperatorTitle = item.PositionName; record.Comments = item.Content; recordDetailList.Add(record); } string result = string.Empty; if (fileType == PrintFileType.Pdf) { result = HtmlConversionUtility.HtmlConvertToPDF(HtmlTempalteType.Reimage, printDic, recordList, recordDetailList); } else { result = HtmlConversionUtility.ConvertToImage(HtmlTempalteType.Reimage, printDic, recordList, recordDetailList); } return(result); }
public IHttpActionResult PreparePackDownload(string refTableName, string projectId) { string pdfPath = string.Empty; string refTableId = ProjectInfo.GetRefTableId(refTableName, projectId); Dictionary <string, string> templateFileds = new Dictionary <string, string>(); HtmlTempalteType templateType = HtmlTempalteType.Default; string flowName = string.Empty; string flowCode = string.Empty; switch (refTableName) { case "MajorLeaseChangePackage": { templateType = HtmlTempalteType.MajorLease; flowName = FlowCode.MajorLease; flowCode = FlowCode.MajorLease_Package; var majorLeaseChangePkg = MajorLeaseChangePackage.GetMajorPackageInfo(projectId); templateFileds = majorLeaseChangePkg.GetPrintTemplateFields(); } break; case "TempClosurePackage": { templateType = HtmlTempalteType.TempClosure; flowName = FlowCode.TempClosure; flowCode = FlowCode.TempClosure_ClosurePackage; var tempClosurePackage = TempClosurePackage.Get(projectId); if (tempClosurePackage == null) { tempClosurePackage = new TempClosurePackage(); tempClosurePackage.ProjectId = projectId; } templateFileds = tempClosurePackage.GetPrintTemplateFields(); } break; case "ReimagePackage": { var entity = ReimagePackage.GetReimagePackageInfo(projectId); templateType = HtmlTempalteType.Reimage; flowName = FlowCode.Reimage; flowCode = FlowCode.Reimage_Package; if (entity == null || entity.Id == Guid.Parse("00000000-0000-0000-0000-000000000000")) { entity = new ReimagePackage(); entity.ProjectId = projectId; } templateFileds = entity.GetPrintTemplateFields(); } break; case "RenewalLegalApproval": { templateType = HtmlTempalteType.RenewalLegalApproval; flowName = FlowCode.Renewal; flowCode = FlowCode.Renewal_LegalApproval; var legal = RenewalLegalApproval.Get(projectId); if (legal == null) { legal = new RenewalLegalApproval(); legal.ProjectId = projectId; } templateFileds = legal.GetPrintTemplateFields(); } break; case "RenewalPackage": { templateType = HtmlTempalteType.Renewal; flowName = FlowCode.Renewal; flowCode = FlowCode.Renewal_Package; var package = RenewalPackage.Get(projectId); if (package == null) { package = new RenewalPackage(); package.ProjectId = projectId; } templateFileds = package.GetPrintTemplateFields(); } break; case "ClosurePackage": { templateType = HtmlTempalteType.Default; flowName = FlowCode.Closure; flowCode = FlowCode.Closure_ClosurePackage; var closurePackage = ClosurePackage.Get(projectId); if (closurePackage == null) { closurePackage = new ClosurePackage(); closurePackage.ProjectId = projectId; } templateFileds = closurePackage.GetPrintTemplateFields(); } break; default: break; } List <Attachment> attachments = Attachment.GetAllAttachmentsIncludeRequire(refTableName, projectId, flowCode).Where(att => att.ID != Guid.Empty && (att.RequirementId.HasValue || att.TypeCode == "Cover")).ToList(); //Submission and Approval Records - 只显示通过意见 List <SubmissionApprovalRecord> recordList = new List <SubmissionApprovalRecord>(); //Submission and Approval Records Details — 所有意见 List <SubmissionApprovalRecord> recordDetailList = new List <SubmissionApprovalRecord>(); ProjectCommentCondition condition = new ProjectCommentCondition(); condition.RefTableName = refTableName; condition.RefTableId = Guid.Parse(refTableId); condition.Status = ProjectCommentStatus.Submit; var commentList = condition.RefTableId == Guid.Empty ? new List <VProjectComment>() : VProjectComment.SearchVListForPDF(condition); var commentDetailList = condition.RefTableId == Guid.Empty ? new List <VProjectComment>() : VProjectComment.SearchVList(condition); SubmissionApprovalRecord record = null; foreach (var item in commentList) { record = new SubmissionApprovalRecord(); record.ActionName = item.ActionDesc; if (item.CreateTime != null) { record.OperationDate = item.CreateTime.Value; } record.OperatorID = item.UserAccount; record.OperatorName = item.UserNameENUS; record.OperatorTitle = item.PositionName; record.Comments = item.Content; recordList.Add(record); } recordList = recordList.OrderBy(i => i.OperationDate).ToList(); foreach (var item in commentDetailList) { record = new SubmissionApprovalRecord(); record.ActionName = item.ActionDesc; if (item.CreateTime != null) { record.OperationDate = item.CreateTime.Value; } record.OperatorID = item.UserAccount; record.OperatorName = item.UserNameENUS; record.OperatorTitle = item.PositionName; record.Comments = item.Content; recordDetailList.Add(record); } recordDetailList = recordDetailList.OrderBy(i => i.OperationDate).ToList(); pdfPath = HtmlConversionUtility.HtmlConvertToPDF(templateType, templateFileds, recordList, recordDetailList); var pdfFileName = Path.GetFileName(pdfPath); var pdfExtension = Path.GetExtension(pdfPath); attachments.Add(new Attachment { InternalName = pdfFileName, Name = flowName + " Print", Extension = pdfExtension }); if (refTableName == "RenewalLegalApproval") { SaveRenewalLegalApprovalPDF("RenewalLegalApproval", projectId, new Guid("870BD738-A512-4B27-9FDB-C18058BFA817"), pdfPath); return(Ok()); } string packFileUrl = ZipHandle.ExeFiles(attachments); return(Ok(new { PackUrl = string.Concat("~/", "Temp/", Path.GetFileName(packFileUrl)) })); }