using Aspose.Words; using BLL; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.IO; using System.Linq; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace FineUIPro.Web.CQMS.Check { public partial class SpotCheckFile : PageBase { /// /// 工序验收记录主键 /// public string SpotCheckCode { get { return (string)ViewState["SpotCheckCode"]; } set { ViewState["SpotCheckCode"] = value; } } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { UnitService.GetUnit(drpUnit, CurrUser.LoginProjectId, true); ddlPageSize.SelectedValue = Grid1.PageSize.ToString(); BindData(); } } protected DataTable ChecklistData() { string strSql = @"SELECT chec.SpotCheckCode,chec.ProjectId,chec.UnitId," + @" chec.DocCode,chec.State,chec.SpotCheckDate,cn.ProfessionalName," + @" unit.UnitName,u.userName as CreateMan " + @" FROM Check_SpotCheck chec " + @" left join Base_Unit unit on unit.unitId=chec.UnitId " + @" left join sys_User u on u.userId = chec.CreateMan" + @" left join Base_CNProfessional cn on cn.CNProfessionalId = chec.CNProfessionalCode" + @" where chec.ProjectId=@ProjectId"; List listStr = new List(); listStr.Add(new SqlParameter("@ProjectId", CurrUser.LoginProjectId)); strSql += " AND (chec.SpotCheckDate>=@startTime or @startTime='') and (chec.SpotCheckDate<=@endTime or @endTime='') "; listStr.Add(new SqlParameter("@startTime", !string.IsNullOrEmpty(txtStartTime.Text.Trim()) ? txtStartTime.Text.Trim() + " 00:00:00" : "")); listStr.Add(new SqlParameter("@endTime", !string.IsNullOrEmpty(txtEndTime.Text.Trim()) ? txtEndTime.Text.Trim() + " 23:59:59" : "")); if (drpUnit.SelectedValue != Const._Null) { strSql += " AND chec.UnitId=@unitId"; listStr.Add(new SqlParameter("@unitId", drpUnit.SelectedValue)); } strSql += " AND chec.State=" + Const.SpotCheck_Complete; SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); return tb; } private void BindData() { var list = ChecklistData(); Grid1.RecordCount = list.Rows.Count; list = GetFilteredTable(Grid1.FilteredData, list); var table = GetPagedDataTable(Grid1, list); Grid1.DataSource = table; Grid1.DataBind(); } /// /// 分页 /// /// /// protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { //Grid1.PageIndex = e.NewPageIndex; BindData(); } /// /// 分页显示条数下拉框 /// /// /// protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); BindData(); } protected void btnQuery_Click(object sender, EventArgs e) { BindData(); } protected void Window1_Close(object sender, WindowCloseEventArgs e) { BindData(); } protected void btnMenuView_Click(object sender, EventArgs e) { if (Grid1.SelectedRowIndexArray.Length == 0) { Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); return; } SpotCheckCode = Grid1.SelectedRowID.Split(',')[0]; PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("SpotCheckView.aspx?SpotCheckCode={0}", SpotCheckCode, "查看 - "))); } protected void btnRset_Click(object sender, EventArgs e) { txtStartTime.Text = ""; txtEndTime.Text = ""; drpUnit.SelectedIndex = 0; BindData(); } /// /// 根据主键返回共检日期 /// /// /// protected string ConvertSpotCheckDate(object SpotCheckCode) { if (SpotCheckCode != null) { Model.Check_SpotCheck spotCheck = BLL.SpotCheckService.GetSpotCheckBySpotCheckCode(SpotCheckCode.ToString()); if (spotCheck != null) { if (spotCheck.CheckDateType == "1") { return string.Format("{0:yyyy-MM-dd HH:mm}", spotCheck.SpotCheckDate); } else { return string.Format("{0:yyyy-MM-dd HH:mm}", spotCheck.SpotCheckDate) + "—" + string.Format("{0:yyyy-MM-dd HH:mm}", spotCheck.SpotCheckDate2); } } } return ""; } // //获取办理人姓名 // // // public static string ConvertMan(object SpotCheckCode) { if (SpotCheckCode != null) { Model.Check_SpotCheckApprove a = BLL.SpotCheckApproveService.GetSpotCheckApproveBySpotCheckCode(SpotCheckCode.ToString()); if (a != null) { if (a.ApproveMan != null) { return BLL.UserService.GetUserByUserId(a.ApproveMan).UserName; } } else { return ""; } } return ""; } protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) { object[] keys = Grid1.DataKeys[e.RowIndex]; string fileId = string.Empty; if (keys == null) { return; } else { fileId = keys[0].ToString(); } if (e.CommandName == "export") { string rootPath = Server.MapPath("~/"); string initTemplatePath = string.Empty; string uploadfilepath = string.Empty; string newUrl = string.Empty; string unitType = string.Empty; string auditDate = string.Empty; string filePath = string.Empty; string auditMan1 = string.Empty; string auditMan2 = string.Empty; string auditDate1 = string.Empty; string approveIdea1 = string.Empty; string approveIdea2 = string.Empty; string approveIdea3 = string.Empty; string auditDate2 = string.Empty; string auditDate3 = string.Empty; string auditMan3 = string.Empty; string auditMan4 = string.Empty; string approveIdea = string.Empty; Model.Check_SpotCheck spCheck = SpotCheckService.GetSpotCheckBySpotCheckCode(fileId); initTemplatePath = Const.SpotCheckTemplateUrl; uploadfilepath = rootPath + initTemplatePath; newUrl = uploadfilepath.Replace(".doc", spCheck.DocCode.Replace("/", "-") + ".doc"); filePath = initTemplatePath.Replace(".doc", spCheck.DocCode.Replace("/", "-") + ".pdf"); File.Copy(uploadfilepath, newUrl); //更新书签内容 Document doc = new Aspose.Words.Document(newUrl); Bookmark bookmarkProjectName = doc.Range.Bookmarks["ProjectName"]; if (bookmarkProjectName != null) { var project = ProjectService.GetProjectByProjectId(spCheck.ProjectId); if (project != null) { bookmarkProjectName.Text = project.ProjectName; } } Bookmark bookmarkDocCode = doc.Range.Bookmarks["DocCode"]; if (bookmarkDocCode != null) { if (bookmarkDocCode != null) { bookmarkDocCode.Text = spCheck.DocCode; } } Bookmark bookmarkCNProfessional = doc.Range.Bookmarks["CNProfessional"]; if (bookmarkCNProfessional != null) { var cNProfessional = CNProfessionalService.GetCNProfessional(spCheck.CNProfessionalCode); if (cNProfessional != null) { bookmarkCNProfessional.Text = cNProfessional.ProfessionalName; } } Bookmark bookmarkCheckArea = doc.Range.Bookmarks["CheckArea"]; if (bookmarkCheckArea != null) { bookmarkCheckArea.Text = spCheck.CheckArea; } Bookmark bookmarkProjectCode = doc.Range.Bookmarks["ProjectCode"]; if (bookmarkProjectName != null) { var project = ProjectService.GetProjectByProjectId(spCheck.ProjectId); if (project != null) { bookmarkProjectCode.Text = project.ProjectCode; } } Bookmark bookmarkSpotCheckDate = doc.Range.Bookmarks["SpotCheckDate"]; if (bookmarkSpotCheckDate != null) { string day = string.Empty; if (spCheck.SpotCheckDate != null) { day = Convert.ToDateTime(spCheck.SpotCheckDate).ToString("yyyy年MM月dd日hh时MM分"); //var hour = Convert.ToDateTime(spCheck.SpotCheckDate).Hour.ToString(); } if (spCheck.SpotCheckDate2 != null) { day += "至"+Convert.ToDateTime(spCheck.SpotCheckDate2).ToString("yyyy年MM月dd日hh时MM分"); } bookmarkSpotCheckDate.Text = day; } Bookmark bookmarkCreateDate = doc.Range.Bookmarks["CreateDate"]; if (bookmarkSpotCheckDate != null) { if (spCheck.CreateDate != null) { bookmarkCreateDate.Text = Convert.ToDateTime(spCheck.SpotCheckDate).ToString("yyyy年MM月dd日"); } } Bookmark bookmarkJointCheckMan = doc.Range.Bookmarks["JointCheckMan"]; if (bookmarkJointCheckMan != null) { //业主 StringBuilder sMan = new StringBuilder(); sMan.Append(!string.IsNullOrWhiteSpace(spCheck.JointCheckMans3) ? "■业主" : "□业主"); sMan.Append(' ', 10); sMan.Append(!string.IsNullOrWhiteSpace(spCheck.JointCheckMans2) ? "■监理" : "□监理"); sMan.Append(' ', 10); sMan.Append(!string.IsNullOrWhiteSpace(spCheck.JointCheckMans) ? "■总承包商" : "□总承包商"); bookmarkJointCheckMan.Text = sMan.ToString(); } Bookmark bookmarkCreateMan = doc.Range.Bookmarks["CreateMan"]; if (bookmarkCreateMan != null) { Model.Sys_User user = (from x in Funs.DB.Sys_User join y in Funs.DB.Project_ProjectUser on x.UserId equals y.UserId where y.ProjectId == CurrUser.LoginProjectId && y.UnitId == spCheck.UnitId && y.RoleId.Contains(Const.SubProjectManager) select x).FirstOrDefault(); if (user != null) { if (!string.IsNullOrEmpty(user.SignatureUrl)) { var file = user.SignatureUrl; if (!string.IsNullOrWhiteSpace(file)) { string url = rootPath + file; DocumentBuilder builders = new DocumentBuilder(doc); builders.MoveToBookmark("CreateMan"); if (!string.IsNullOrEmpty(url)) { System.Drawing.Size JpgSize; float Wpx; float Hpx; UploadAttachmentService.getJpgSize(url, out JpgSize, out Wpx, out Hpx); double i = 1; i = JpgSize.Width / 50.0; if (File.Exists(url)) { builders.InsertImage(url, JpgSize.Width / i, JpgSize.Height / i); } else { bookmarkCreateMan.Text = user.UserName; } } } } else { bookmarkCreateMan.Text = user.UserName; } } } //Bookmark bookmarkTable = doc.Range.Bookmarks["Table"]; //Aspose.Words.Tables.Table tables = new Aspose.Words.Tables.Table(doc); Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc); bool isbool = builder.MoveToBookmark("Table"); if (isbool) { builder.StartTable(); builder.RowFormat.Alignment = Aspose.Words.Tables.RowAlignment.Center; builder.CellFormat.Borders.LineStyle = LineStyle.Single; builder.CellFormat.Borders.Color = System.Drawing.Color.Black; builder.RowFormat.LeftIndent = 5; //builder.RowFormat.RightPadding = 50; builder.Bold = false; //builder.RowFormat.Height = 20; //builder.CellFormat.Width = 80; } DataTable dt = new DataTable(); dt.Columns.Add("序号", typeof(string)); dt.Columns.Add("共检项目名称", typeof(string)); dt.Columns.Add("控制点级别", typeof(string)); var sports = SpotCheckDetailService.GetSpotCheckDetails(spCheck.SpotCheckCode); if (sports.Count > 0) { foreach (var item in sports) { int i = sports.IndexOf(item) + 1; dt.Rows.Add(new string[] { i.ToString(), ConvertDetailName(item.ControlItemAndCycleId), ConvertControlPoint(item.ControlItemAndCycleId) }); } } builder.RowFormat.Height = 20; builder.Bold = false; foreach (DataRow row in dt.Rows) { foreach (DataColumn column in dt.Columns) { builder.InsertCell(); builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None; builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First; builder.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center;//垂直居中对齐 builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;//水平居中对齐 if (column.ColumnName == "序号") { builder.CellFormat.Width = 30; } else if (column.ColumnName == "共检项目名称") { builder.CellFormat.Width = 318; } else if (column.ColumnName == "控制点级别") { builder.CellFormat.Width = 65; } builder.Write(row[column.ColumnName].ToString()); } builder.EndRow(); } builder.EndTable(); doc.Save(newUrl); //生成PDF文件 string pdfUrl = newUrl.Replace(".doc", ".pdf"); Document doc1 = new Aspose.Words.Document(newUrl); //验证参数 if (doc1 == null) { throw new Exception("Word文件无效"); } doc1.Save(pdfUrl, Aspose.Words.SaveFormat.Pdf);//还可以改成其它格式 string fileName = Path.GetFileName(filePath); FileInfo info = new FileInfo(pdfUrl); long fileSize = info.Length; Response.Clear(); Response.ContentType = "application/x-zip-compressed"; Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); Response.AddHeader("Content-Length", fileSize.ToString()); Response.TransmitFile(pdfUrl, 0, fileSize); Response.Flush(); Response.Close(); File.Delete(newUrl); File.Delete(pdfUrl); } if (e.CommandName.Equals("download")) { string menuId = Const.SpotCheckMenuId; PageContext.RegisterStartupScript(Windowtt.GetShowReference( String.Format("../../AttachFile/webuploader.aspx?type=-1&source=1&toKeyId={0}&path=FileUpload/SpotCheck&menuId={1}", fileId, menuId))); } } /// /// 获取共检内容 /// /// /// protected string ConvertDetailName(object ControlItemAndCycleId) { string name = string.Empty; if (ControlItemAndCycleId != null) { Model.WBS_ControlItemAndCycle c = BLL.ControlItemAndCycleService.GetControlItemAndCycleById(ControlItemAndCycleId.ToString()); if (c != null) { name = c.ControlItemContent; Model.WBS_WorkPackage w = BLL.WorkPackageService.GetWorkPackageByWorkPackageId(c.WorkPackageId); if (w != null) { name = w.PackageContent + "/" + name; Model.WBS_WorkPackage pw = BLL.WorkPackageService.GetWorkPackageByWorkPackageId(w.SuperWorkPackageId); if (pw != null) { name = pw.PackageContent + "/" + name; Model.WBS_WorkPackage ppw = BLL.WorkPackageService.GetWorkPackageByWorkPackageId(pw.SuperWorkPackageId); if (ppw != null) { name = ppw.PackageContent + "/" + name; Model.WBS_UnitWork u = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(ppw.UnitWorkId); if (u != null) { name = u.UnitWorkName + "/" + name; } } else { Model.WBS_UnitWork u = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(pw.UnitWorkId); if (u != null) { name = u.UnitWorkName + "/" + name; } } } else { Model.WBS_UnitWork u = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(w.UnitWorkId); if (u != null) { name = u.UnitWorkName + "/" + name; } } } } } return name; } /// /// 获取控制点级别 /// /// /// protected string ConvertControlPoint(object ControlItemAndCycleId) { string controlPoint = string.Empty; if (ControlItemAndCycleId != null) { Model.WBS_ControlItemAndCycle c = BLL.ControlItemAndCycleService.GetControlItemAndCycleById(ControlItemAndCycleId.ToString()); if (c != null) { controlPoint = c.ControlPoint; } } return controlPoint; } } }