diff --git a/SGGL/BLL/Common/Const.cs b/SGGL/BLL/Common/Const.cs index 80b375dc..59aced14 100644 --- a/SGGL/BLL/Common/Const.cs +++ b/SGGL/BLL/Common/Const.cs @@ -3427,7 +3427,26 @@ namespace BLL /// 合同价格信息导入模板 /// public const string TemContractTrackTemplateUrl = "File\\Excel\\DataIn\\合同价格信息导入模板.xlsx"; - + /// + /// 施工日志模板文件原始虚拟路径 + /// + public const string ConstructionLogTemplateUrl = "File\\Excel\\ConstructionLog\\施工日志.xlsx"; + /// + /// 日工效汇总表模板文件原始虚拟路径 + /// + public const string DayConstructionLogWorkEfficiencyTemplateUrl = "File\\Excel\\ConstructionLog\\日工效汇总表.xlsx"; + /// + /// 月工效汇总表模板文件原始虚拟路径 + /// + public const string MonthConstructionLogWorkEfficiencyTemplateUrl = "File\\Excel\\ConstructionLog\\月工效汇总表.xlsx"; + /// + /// 项目平均工效模板文件原始虚拟路径 + /// + public const string ProjectConstructionLogWorkEfficiencyTemplateUrl = "File\\Excel\\ConstructionLog\\项目平均工效.xlsx"; + /// + /// 公司平均工效统计模板文件原始虚拟路径 + /// + public const string CompanyConstructionLogWorkEfficiencyTemplateUrl = "File\\Excel\\ConstructionLog\\公司平均工效统计.xlsx"; #endregion #region 初始化上传路径 diff --git a/SGGL/BLL/PHTGL/BillOfQuantities/PhtglQuantityService.cs b/SGGL/BLL/PHTGL/BillOfQuantities/PhtglQuantityService.cs index a98e41a3..bfd7a777 100644 --- a/SGGL/BLL/PHTGL/BillOfQuantities/PhtglQuantityService.cs +++ b/SGGL/BLL/PHTGL/BillOfQuantities/PhtglQuantityService.cs @@ -339,6 +339,29 @@ namespace BLL return list; } + public static string GetMajorName(string majorIds) + { + string majorName = string.Empty; + if (!string.IsNullOrEmpty(majorIds)) + { + string[] strs = majorIds.Split(','); + var items = GetMajorItems2(); + foreach (var item in strs) + { + var un = items.FirstOrDefault(x => x.Text == item); + if (un != null) + { + majorName += un.Value + ","; + } + } + if (!string.IsNullOrEmpty(majorName)) + { + majorName = majorName.Substring(0, majorName.LastIndexOf(",")); + } + } + return majorName; + } + #region 获取列表 /// diff --git a/SGGL/BLL/PHTGL/ContractCompile/ContractService.cs b/SGGL/BLL/PHTGL/ContractCompile/ContractService.cs index 73663944..c7704a71 100644 --- a/SGGL/BLL/PHTGL/ContractCompile/ContractService.cs +++ b/SGGL/BLL/PHTGL/ContractCompile/ContractService.cs @@ -205,5 +205,26 @@ namespace BLL } } + public static string GetContractName(string contractIds) + { + string contractName = string.Empty; + if (!string.IsNullOrEmpty(contractIds)) + { + string[] strs = contractIds.Split(','); + foreach (var item in strs) + { + var cn = GetContractById(item); + if (cn != null) + { + contractName += cn.ContractName + ","; + } + } + if (!string.IsNullOrEmpty(contractName)) + { + contractName = contractName.Substring(0, contractName.LastIndexOf(",")); + } + } + return contractName; + } } } \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/File/Excel/ConstructionLog/公司平均工效统计.xlsx b/SGGL/FineUIPro.Web/File/Excel/ConstructionLog/公司平均工效统计.xlsx new file mode 100644 index 00000000..bd35e3d0 Binary files /dev/null and b/SGGL/FineUIPro.Web/File/Excel/ConstructionLog/公司平均工效统计.xlsx differ diff --git a/SGGL/FineUIPro.Web/File/Excel/ConstructionLog/施工日志.xlsx b/SGGL/FineUIPro.Web/File/Excel/ConstructionLog/施工日志.xlsx new file mode 100644 index 00000000..433d158f Binary files /dev/null and b/SGGL/FineUIPro.Web/File/Excel/ConstructionLog/施工日志.xlsx differ diff --git a/SGGL/FineUIPro.Web/File/Excel/ConstructionLog/日工效汇总表.xlsx b/SGGL/FineUIPro.Web/File/Excel/ConstructionLog/日工效汇总表.xlsx new file mode 100644 index 00000000..529b3d9d Binary files /dev/null and b/SGGL/FineUIPro.Web/File/Excel/ConstructionLog/日工效汇总表.xlsx differ diff --git a/SGGL/FineUIPro.Web/File/Excel/ConstructionLog/月工效汇总表.xlsx b/SGGL/FineUIPro.Web/File/Excel/ConstructionLog/月工效汇总表.xlsx new file mode 100644 index 00000000..0a4682d9 Binary files /dev/null and b/SGGL/FineUIPro.Web/File/Excel/ConstructionLog/月工效汇总表.xlsx differ diff --git a/SGGL/FineUIPro.Web/File/Excel/ConstructionLog/项目平均工效.xlsx b/SGGL/FineUIPro.Web/File/Excel/ConstructionLog/项目平均工效.xlsx new file mode 100644 index 00000000..2ec72142 Binary files /dev/null and b/SGGL/FineUIPro.Web/File/Excel/ConstructionLog/项目平均工效.xlsx differ diff --git a/SGGL/FineUIPro.Web/PZHGL/InformationProject/CompanyConstructionLogWorkEfficiencySum.aspx b/SGGL/FineUIPro.Web/PZHGL/InformationProject/CompanyConstructionLogWorkEfficiencySum.aspx index 8045e90c..f161efb9 100644 --- a/SGGL/FineUIPro.Web/PZHGL/InformationProject/CompanyConstructionLogWorkEfficiencySum.aspx +++ b/SGGL/FineUIPro.Web/PZHGL/InformationProject/CompanyConstructionLogWorkEfficiencySum.aspx @@ -35,6 +35,9 @@ + + diff --git a/SGGL/FineUIPro.Web/PZHGL/InformationProject/CompanyConstructionLogWorkEfficiencySum.aspx.cs b/SGGL/FineUIPro.Web/PZHGL/InformationProject/CompanyConstructionLogWorkEfficiencySum.aspx.cs index 2b58dd86..1b631e86 100644 --- a/SGGL/FineUIPro.Web/PZHGL/InformationProject/CompanyConstructionLogWorkEfficiencySum.aspx.cs +++ b/SGGL/FineUIPro.Web/PZHGL/InformationProject/CompanyConstructionLogWorkEfficiencySum.aspx.cs @@ -1,8 +1,10 @@ using BLL; using Newtonsoft.Json.Linq; +using NPOI.SS.Util; using System; using System.Collections.Generic; using System.Data; +using System.IO; using System.Linq; using System.Web.UI.WebControls; @@ -270,5 +272,170 @@ namespace FineUIPro.Web.PZHGL.InformationProject } } #endregion + + #region 导出按钮 + /// 导出按钮 + /// + /// + /// + protected void btnOut_Click(object sender, EventArgs e) + { + if (this.Grid1.Rows.Count == 0) + { + Alert.ShowInTop("无数据可导出!", MessageBoxIcon.Warning); + return; + } + string rootPath = Server.MapPath("~/"); + string initTemplatePath = string.Empty; + string uploadfilepath = string.Empty; + string newUrl = string.Empty; + string filePath = string.Empty; + initTemplatePath = Const.CompanyConstructionLogWorkEfficiencyTemplateUrl; + uploadfilepath = rootPath + initTemplatePath; + + Model.SGGLDB db = Funs.DB; + var projects = (from x in db.Base_Project + where x.ProjectState == null || x.ProjectState == BLL.Const.ProjectState_1 + select x).ToList(); + newUrl = uploadfilepath.Replace(".xlsx", "(" + string.Format("{0:yyyy-MM-dd}", DateTime.Now) + ")" + ".xlsx"); + File.Copy(uploadfilepath, newUrl); + // 第一步:读取文件流 + NPOI.SS.UserModel.IWorkbook workbook; + using (FileStream stream = new FileStream(newUrl, FileMode.Open, FileAccess.Read)) + { + workbook = new NPOI.XSSF.UserModel.XSSFWorkbook(stream); + } + // 创建单元格样式 + NPOI.SS.UserModel.ICellStyle cellStyle0 = workbook.CreateCellStyle(); + cellStyle0.BorderTop = NPOI.SS.UserModel.BorderStyle.None; + cellStyle0.BorderRight = NPOI.SS.UserModel.BorderStyle.None; + cellStyle0.BorderBottom = NPOI.SS.UserModel.BorderStyle.None; + cellStyle0.BorderLeft = NPOI.SS.UserModel.BorderStyle.None; + cellStyle0.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; + cellStyle0.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle0.WrapText = true; + var font = workbook.CreateFont(); + font.FontHeightInPoints = 16; + font.IsBold = true; + cellStyle0.SetFont(font); + NPOI.SS.UserModel.ICellStyle cellStyle1 = workbook.CreateCellStyle(); + cellStyle1.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle1.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle1.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle1.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle1.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; + cellStyle1.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle1.WrapText = true; + var font1 = workbook.CreateFont(); + font1.FontHeightInPoints = 11; + font1.IsBold = true; + cellStyle1.SetFont(font1); + NPOI.SS.UserModel.ICellStyle cellStyle2 = workbook.CreateCellStyle(); + cellStyle2.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle2.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle2.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle2.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle2.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; + cellStyle2.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle2.WrapText = true; + var font0 = workbook.CreateFont(); + font0.FontHeightInPoints = 11; + font0.IsBold = false; + cellStyle2.SetFont(font0); + NPOI.SS.UserModel.ICellStyle cellStyle3 = workbook.CreateCellStyle(); + cellStyle3.BorderTop = NPOI.SS.UserModel.BorderStyle.None; + cellStyle3.BorderRight = NPOI.SS.UserModel.BorderStyle.None; + cellStyle3.BorderBottom = NPOI.SS.UserModel.BorderStyle.None; + cellStyle3.BorderLeft = NPOI.SS.UserModel.BorderStyle.None; + cellStyle3.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Left; + cellStyle3.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + //cellStyle3.FillForegroundColor = NPOI.HSSF.Util.HSSFColor.Grey25Percent.Index; + //cellStyle3.FillPattern = NPOI.SS.UserModel.FillPattern.SolidForeground; + cellStyle3.WrapText = true; + var font3 = workbook.CreateFont(); + font3.FontHeightInPoints = 11; + font3.IsBold = true; + cellStyle3.SetFont(font3); + // 第二步:创建新数据行 + NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0); + NPOI.SS.UserModel.IRow row1 = sheet.GetRow(0); + NPOI.SS.UserModel.ICell cell3; + cell3 = row1.CreateCell(0); + cell3.CellStyle = cellStyle0; + cell3.SetCellValue("公司平均工效统计"); + cell3 = row1.CreateCell(4 + projects.Count); + cell3.CellStyle = cellStyle0; + sheet.AddMergedRegion(new CellRangeAddress(0, 0, 0, 4 + projects.Count)); + row1 = sheet.GetRow(1); + cell3 = row1.CreateCell(5); + cell3.CellStyle = cellStyle1; + cell3.SetCellValue("工效统计"); + for (int i = 1; i < projects.Count; i++) + { + cell3 = row1.CreateCell(5 + i); + cell3.CellStyle = cellStyle1; + } + sheet.AddMergedRegion(new CellRangeAddress(1, 1, 5, 4 + projects.Count)); + row1 = sheet.GetRow(2); + for (int i = 0; i < projects.Count; i++) + { + cell3 = row1.CreateCell(5 + i); + cell3.CellStyle = cellStyle1; + cell3.SetCellValue(projects[i].ShortName); + } + int rowCount = 3; + foreach (JObject mergedRow in Grid1.GetMergedData()) + { + JObject values = mergedRow.Value("values"); + int a = mergedRow.Value("index"); + + string Code = values.Value("Code"); + string Name = values.Value("Name"); + string UnitOfMeasurement = values.Value("UnitOfMeasurement"); + string BaseWorkEfficiency = values.Value("BaseWorkEfficiency"); + string AvgWorkEfficiency = values.Value("AvgWorkEfficiency"); + row1 = sheet.GetRow(rowCount); + cell3 = row1.CreateCell(0); + cell3.CellStyle = cellStyle2; + cell3.SetCellValue(Code); + cell3 = row1.CreateCell(1); + cell3.CellStyle = cellStyle2; + cell3.SetCellValue(Name); + cell3 = row1.CreateCell(2); + cell3.CellStyle = cellStyle2; + cell3.SetCellValue(UnitOfMeasurement); + cell3 = row1.CreateCell(3); + cell3.CellStyle = cellStyle2; + cell3.SetCellValue(BaseWorkEfficiency); + cell3 = row1.CreateCell(4); + cell3.CellStyle = cellStyle2; + cell3.SetCellValue(AvgWorkEfficiency); + for (int i = 0; i < projects.Count; i++) + { + cell3 = row1.CreateCell(5 + i); + cell3.CellStyle = cellStyle2; + cell3.SetCellValue(values.Value("Project" + i.ToString())); + } + rowCount++; + } + // 第三步:写入文件流 + using (FileStream stream = new FileStream(newUrl, FileMode.Create, FileAccess.Write)) + { + workbook.Write(stream); + workbook.Close(); + } + string fileName = Path.GetFileName(newUrl); + FileInfo info = new FileInfo(newUrl); + 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(newUrl, 0, fileSize); + Response.Flush(); + Response.Close(); + File.Delete(newUrl); + } + #endregion } } \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/PZHGL/InformationProject/CompanyConstructionLogWorkEfficiencySum.aspx.designer.cs b/SGGL/FineUIPro.Web/PZHGL/InformationProject/CompanyConstructionLogWorkEfficiencySum.aspx.designer.cs index 845c1807..95189627 100644 --- a/SGGL/FineUIPro.Web/PZHGL/InformationProject/CompanyConstructionLogWorkEfficiencySum.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/PZHGL/InformationProject/CompanyConstructionLogWorkEfficiencySum.aspx.designer.cs @@ -75,6 +75,15 @@ namespace FineUIPro.Web.PZHGL.InformationProject { /// protected global::FineUIPro.Button btnSave; + /// + /// btnOut 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnOut; + /// /// nbBaseWorkEfficiency 控件。 /// diff --git a/SGGL/FineUIPro.Web/PZHGL/InformationProject/ConstructionLog.aspx b/SGGL/FineUIPro.Web/PZHGL/InformationProject/ConstructionLog.aspx index 238aed49..de9c8c29 100644 --- a/SGGL/FineUIPro.Web/PZHGL/InformationProject/ConstructionLog.aspx +++ b/SGGL/FineUIPro.Web/PZHGL/InformationProject/ConstructionLog.aspx @@ -370,7 +370,7 @@ -