diff --git a/SGGL/BLL/BLL.csproj b/SGGL/BLL/BLL.csproj index 5b45a003..3a63a896 100644 --- a/SGGL/BLL/BLL.csproj +++ b/SGGL/BLL/BLL.csproj @@ -117,6 +117,7 @@ + ..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll diff --git a/SGGL/BLL/Common/Funs.cs b/SGGL/BLL/Common/Funs.cs index 7178c5fd..59a84938 100644 --- a/SGGL/BLL/Common/Funs.cs +++ b/SGGL/BLL/Common/Funs.cs @@ -567,6 +567,55 @@ namespace BLL return str; } + public static bool DeleteDir(string file) + { + + try + { + //去除文件夹和子文件的只读属性 + //去除文件夹的只读属性 + System.IO.DirectoryInfo fileInfo = new DirectoryInfo(file); + fileInfo.Attributes = FileAttributes.Normal & FileAttributes.Directory; + + //去除文件的只读属性 + System.IO.File.SetAttributes(file, System.IO.FileAttributes.Normal); + + //判断文件夹是否还存在 + if (Directory.Exists(file)) + { + + foreach (string f in Directory.GetFileSystemEntries(file)) + { + + if (File.Exists(f)) + { + //如果有子文件删除文件 + File.Delete(f); + Console.WriteLine(f); + } + else + { + //循环递归删除子文件夹 + DeleteDir(f); + } + + } + + //删除空文件夹 + + Directory.Delete(file); + + } + return true; + } + catch (Exception ex) // 异常处理 + { + return false; + } + + } + + #region 时间转换 /// /// 输入文本转换时间类型 diff --git a/SGGL/BLL/PHTGL/ContractCompile/ContractReviewService.cs b/SGGL/BLL/PHTGL/ContractCompile/ContractReviewService.cs index 9b4b4a14..c457b709 100644 --- a/SGGL/BLL/PHTGL/ContractCompile/ContractReviewService.cs +++ b/SGGL/BLL/PHTGL/ContractCompile/ContractReviewService.cs @@ -1,5 +1,7 @@ 锘縰sing Aspose.Words; using FineUIPro; +using ICSharpCode.SharpZipLib.Zip; +using Microsoft.SqlServer.Server; using System; using System.Collections.Generic; using System.Data; @@ -650,62 +652,84 @@ namespace BLL File.Delete(pdfUrl); } + //鍒犻櫎鏂囦欢澶 public static void PrintApprovalForm(string ContractReviewId) { var ReviewModel = BLL.PHTGL_ContractReviewService.GetPHTGL_ContractReviewById(ContractReviewId); var getFireWork = BLL.ContractService.GetContractById(ReviewModel.ContractId); - Document doc=new Document(); + string projectname=ProjectService.GetProjectNameByProjectId(getFireWork.ProjectId); + string rootPath = Funs.RootPath; + + string startPath = rootPath + "File\\Word\\PHTGL\\"+ getFireWork.ContractNum + "-"+projectname + "-" + getFireWork.ContractName + "-鍚堝悓绠$悊璧勬枡"; + if (!Directory.Exists(startPath)) + { + Directory.CreateDirectory(startPath); + } + string zipPath = rootPath + "File\\Word\\PHTGL\\" + getFireWork.ContractNum + "-" + projectname + "-" + getFireWork.ContractName + "-鍚堝悓绠$悊璧勬枡.zip"; switch (getFireWork.ConfirmWay) { case "1": - doc = PrintApprovalFormType_SetSub(ContractReviewId); + PrintApprovalFormType_SetSub(ContractReviewId, startPath + "\\"); break; case "2": - doc = PrintApprovalFormType_SetSub(ContractReviewId); - + PrintApprovalFormType_SetSub(ContractReviewId, startPath + "\\"); break; case "3": - doc = PrintApprovalFormType_SetSub(ContractReviewId); - + PrintApprovalFormType_SetSub(ContractReviewId, startPath + "\\"); break; case "4": - doc = PrintApprovalFormType_Act(ContractReviewId); + PrintApprovalFormType_Act(ContractReviewId, startPath + "\\"); break; case "5": - doc = PrintApprovalFormType_Act(ContractReviewId); + PrintApprovalFormType_Act(ContractReviewId, startPath + "\\"); break; default : - doc = PrintApprovalFormType__Con(ContractReviewId); + PrintApprovalFormType__Con(ContractReviewId, startPath + "\\"); break; } - PrintFileByDocument(doc, getFireWork.ContractNum+ getFireWork.ContractName+ "-鍚堝悓绠$悊璧勬枡"); - } + System.IO.Compression.ZipFile.CreateFromDirectory(startPath, zipPath); + FileInfo info = new FileInfo(zipPath); + long fileSize = info.Length; + System.Web.HttpContext.Current.Response.Clear(); + System.Web.HttpContext.Current.Response.ContentType = "application/x-zip-compressed"; + System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(getFireWork.ContractNum + "-" + projectname + "-" + getFireWork.ContractName + "-鍚堝悓绠$悊璧勬枡.zip", System.Text.Encoding.UTF8)); + System.Web.HttpContext.Current.Response.AddHeader("Content-Length", fileSize.ToString()); + System.Web.HttpContext.Current.Response.TransmitFile(zipPath, 0, fileSize); + System.Web.HttpContext.Current.Response.Flush(); + System.Web.HttpContext.Current.Response.Close(); + Funs.DeleteDir(startPath); + File.Delete (zipPath); + + } /// /// ConfirmWay 4锛5 /// - public static Document PrintApprovalFormType_Act(string ContractReviewId) + public static void PrintApprovalFormType_Act(string ContractReviewId, string path) { Model.PHTGL_Contract Contract = new Model.PHTGL_Contract(); //鍚堝悓淇℃伅 Model.PHTGL_ActionPlanFormation ActPlan = new Model.PHTGL_ActionPlanFormation(); //瀹炴柦璁″垝缂栧埗淇℃伅 - + Model.PHTGL_ActionPlanFormation ActPlanFormat = new Model.PHTGL_ActionPlanFormation(); //瀹炴柦璁″垝缂栧埗淇℃伅 + var ReviewModel = BLL.PHTGL_ContractReviewService.GetPHTGL_ContractReviewById(ContractReviewId); Contract = BLL.ContractService.GetContractById(ReviewModel.ContractId); ActPlan = BLL.PHTGL_ActionPlanFormationService.GetPHTGL_ActionPlanFormationByCode(Contract.ActionPlanCode); - + ActPlanFormat = PHTGL_ActionPlanFormationService.GetPHTGL_ActionPlanFormationById(ActPlan.ActionPlanID); + var Doc_ActPlan = PHTGL_ActionPlanFormationService.Print(ActPlan.ActionPlanID); var Doc_Contract = Print(ContractReviewId); - Doc_ActPlan.AppendDocument(Doc_Contract, ImportFormatMode.UseDestinationStyles); - return Doc_ActPlan; + Doc_ActPlan.Save(path + ActPlanFormat.ActionPlanCode + "鏂藉伐鍒嗗寘瀹炴柦璁″垝.pdf", SaveFormat.Pdf); + Doc_Contract.Save(path + Contract.ContractNum + "鍚堝悓璇勫.pdf", SaveFormat.Pdf); + } /// /// ConfirmWay 1锛2锛3 /// - public static Document PrintApprovalFormType_SetSub(string ContractReviewId) + public static void PrintApprovalFormType_SetSub(string ContractReviewId,string path) { Model.PHTGL_Contract Contract =new Model.PHTGL_Contract(); //鍚堝悓淇℃伅 @@ -713,13 +737,15 @@ namespace BLL Model.PHTGL_BidApproveUserReview ApproveUser = new Model.PHTGL_BidApproveUserReview(); //璇勬爣灏忕粍鍚嶅崟淇℃伅 Model.PHTGL_BidDocumentsReview BidDoc = new Model.PHTGL_BidDocumentsReview();//鎷涙爣鏂囦欢淇℃伅 Model.PHTGL_ActionPlanReview ActPlan = new Model.PHTGL_ActionPlanReview();//瀹炴柦璁″垝淇℃伅 + Model.PHTGL_ActionPlanFormation ActPlanFormat = new Model.PHTGL_ActionPlanFormation(); //瀹炴柦璁″垝缂栧埗淇℃伅 - var ReviewModel = BLL.PHTGL_ContractReviewService.GetPHTGL_ContractReviewById(ContractReviewId); + var ReviewModel = BLL.PHTGL_ContractReviewService.GetPHTGL_ContractReviewById(ContractReviewId); Contract = BLL.ContractService.GetContractById(ReviewModel.ContractId); SetSub = BLL.PHTGL_SetSubReviewService.GetPHTGL_SetSubReviewBySetSubReviewCode(Contract.SetSubReviewCode); ApproveUser = BLL.PHTGL_BidApproveUserReviewService.GetPHTGL_BidApproveUserReviewById(SetSub.ApproveUserReviewID); BidDoc = BLL.PHTGL_BidDocumentsReviewService.GetPHTGL_BidDocumentsReviewById(ApproveUser.BidDocumentsReviewId); ActPlan = BLL.PHTGL_ActionPlanReviewService.GetPHTGL_ActionPlanReviewById(BidDoc.ActionPlanReviewId); + ActPlanFormat = PHTGL_ActionPlanFormationService.GetPHTGL_ActionPlanFormationById(ActPlan.ActionPlanID); var Doc_ActPlan = PHTGL_ActionPlanFormationService.Print(ActPlan.ActionPlanID); var Doc_BidDoc = PHTGL_BidDocumentsReviewService.Print(BidDoc.BidDocumentsReviewId); @@ -727,20 +753,21 @@ namespace BLL var Doc_SetSub = PHTGL_SetSubReviewService.Print(SetSub.SetSubReviewID); var Doc_Contract = Print(ContractReviewId); - Doc_ActPlan.AppendDocument(Doc_BidDoc, ImportFormatMode.UseDestinationStyles); - Doc_ActPlan.AppendDocument(Doc_ApproveUser, ImportFormatMode.UseDestinationStyles); - Doc_ActPlan.AppendDocument(Doc_SetSub, ImportFormatMode.UseDestinationStyles); - Doc_ActPlan.AppendDocument(Doc_Contract, ImportFormatMode.UseDestinationStyles); - return Doc_ActPlan; + Doc_ActPlan.Save(path+ ActPlanFormat.ActionPlanCode+ "鏂藉伐鍒嗗寘瀹炴柦璁″垝.pdf" , SaveFormat.Pdf); + Doc_BidDoc.Save(path + BidDoc.BidDocumentsCode + "鎷涙爣鏂囦欢瀹℃壒琛.pdf",SaveFormat.Pdf); + Doc_ApproveUser.Save(path+ "鏂藉伐鎷涙爣璇勬爣灏忕粍鍚嶅崟瀹℃壒琛.pdf", SaveFormat.Pdf); + Doc_SetSub.Save(path+ SetSub.SetSubReviewCode+ "纭畾鍒嗗寘鍟嗗鎵硅〃.pdf", SaveFormat.Pdf); + Doc_Contract.Save(path+ Contract.ContractNum + "鍚堝悓璇勫.pdf", SaveFormat.Pdf); } - public static Document PrintApprovalFormType__Con(string ContractReviewId) + public static void PrintApprovalFormType__Con(string ContractReviewId,string path) { Model.PHTGL_Contract Contract = new Model.PHTGL_Contract(); //鍚堝悓淇℃伅 var ReviewModel = BLL.PHTGL_ContractReviewService.GetPHTGL_ContractReviewById(ContractReviewId); Contract = BLL.ContractService.GetContractById(ReviewModel.ContractId); var Doc_Contract = Print(ContractReviewId); - return Doc_Contract; + Doc_Contract.Save(path + Contract.ContractNum + "鍚堝悓璇勫.pdf", SaveFormat.Pdf); + } /// /// 鍒嗗寘鍚堝悓鍗忚涔 diff --git a/SGGL/BLL/PHTGL/ContractCompile/PHTGL_ApproveService.cs b/SGGL/BLL/PHTGL/ContractCompile/PHTGL_ApproveService.cs index cf4fb640..c2175632 100644 --- a/SGGL/BLL/PHTGL/ContractCompile/PHTGL_ApproveService.cs +++ b/SGGL/BLL/PHTGL/ContractCompile/PHTGL_ApproveService.cs @@ -21,7 +21,6 @@ namespace BLL return Funs.DB.PHTGL_Approve.FirstOrDefault(e => e.ApproveId == ApproveId); } - public static List GetPHTGL_ApproveByContractId(string contractId) { var q = (from x in Funs.DB.PHTGL_Approve where x.ContractId == contractId && x.State == 0 select x).ToList(); @@ -41,9 +40,10 @@ namespace BLL return q; } public static Model.PHTGL_Approve GetPHTGL_ApproveByContractIdandUserId(string contractId, string UserID) - { - return Funs.DB.PHTGL_Approve.FirstOrDefault(e => e.ContractId == contractId && e.ApproveMan == UserID); + var q=(from x in Funs.DB.PHTGL_Approve where x.ContractId==contractId && x.ApproveMan==UserID orderby x.ApproveDate descending select x ).FirstOrDefault(); + //return Funs.DB.PHTGL_Approve.FirstOrDefault(e => e.ContractId == contractId && e.ApproveMan == UserID ); + return q; } public static Model.PHTGL_Approve GetPHTGL_ApproveByContractIdAndType(string contractId, string approveType)