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 @@
-