From a039bc13c78e6a9c2ff9f95813e5c6d3a71402a5 Mon Sep 17 00:00:00 2001
From: gaofei1985 <181547018@qq.com>
Date: Fri, 4 Aug 2023 10:21:33 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=BF=9B=E5=BA=A6=E8=AE=A1?=
=?UTF-8?q?=E5=88=92=E7=BC=96=E5=88=B6=E5=AF=BC=E5=87=BA=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../1-4进度管理(Menu_JDGL).sql | 2 +-
SGGL/BLL/CQMS/WBS/WorkPackageService.cs | 39 +++-
SGGL/BLL/Common/Const.cs | 5 +
.../File/Excel/DataOut/进度计划编制.xls | Bin 0 -> 27648 bytes
SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx | 14 +-
SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx.cs | 194 +++++++++++++++++-
.../JDGL/Check/PlanSet.aspx.designer.cs | 13 +-
7 files changed, 251 insertions(+), 16 deletions(-)
create mode 100644 SGGL/FineUIPro.Web/File/Excel/DataOut/进度计划编制.xls
diff --git a/DataBase/菜单初始化脚本/1-4进度管理(Menu_JDGL).sql b/DataBase/菜单初始化脚本/1-4进度管理(Menu_JDGL).sql
index 02b777c5..e682de42 100644
--- a/DataBase/菜单初始化脚本/1-4进度管理(Menu_JDGL).sql
+++ b/DataBase/菜单初始化脚本/1-4进度管理(Menu_JDGL).sql
@@ -55,7 +55,7 @@ go
--GO
INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)
-VALUES('E23F0879-3E9F-4E7B-9A2D-EFF34798D629','进度计划设置','JDGL/Check/PlanSet.aspx',10,'0','Menu_JDGL',0,1,1)
+VALUES('E23F0879-3E9F-4E7B-9A2D-EFF34798D629','进度计划编制','JDGL/Check/PlanSet.aspx',10,'0','Menu_JDGL',0,1,1)
GO
INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex)
VALUES('F5055103-6182-43E0-93EC-7DD7BEF2B71C','E23F0879-3E9F-4E7B-9A2D-EFF34798D629','保存',4)
diff --git a/SGGL/BLL/CQMS/WBS/WorkPackageService.cs b/SGGL/BLL/CQMS/WBS/WorkPackageService.cs
index 6a9a7529..cacebc16 100644
--- a/SGGL/BLL/CQMS/WBS/WorkPackageService.cs
+++ b/SGGL/BLL/CQMS/WBS/WorkPackageService.cs
@@ -245,7 +245,7 @@ namespace BLL
/// 获取模拟树表格
///
///
- public static DataTable GetAllTreeDataTable(string projectId)
+ public static DataTable GetAllTreeDataTable(string projectId, string IsOut)
{
using (var db = new Model.SGGLDB(Funs.ConnString))
{
@@ -260,7 +260,7 @@ namespace BLL
table.Columns.Add(new DataColumn("WBSType", typeof(String)));
table.Columns.Add(new DataColumn("ProjectId", typeof(String)));
table.Columns.Add(new DataColumn("ShowId", typeof(String)));
- table.Columns.Add(new DataColumn("Weights", typeof(String)));
+ table.Columns.Add(new DataColumn("JDWeights", typeof(String)));
table.Columns.Add(new DataColumn("Unit", typeof(String)));
table.Columns.Add(new DataColumn("PlanProjectQuantity", typeof(String)));
table.Columns.Add(new DataColumn("RealProjectQuantity", typeof(String)));
@@ -271,14 +271,25 @@ namespace BLL
table.Columns.Add(new DataColumn("IsMileStone", typeof(bool)));
table.Columns.Add(new DataColumn("PlanCost", typeof(String)));
table.Columns.Add(new DataColumn("PreWorkCode", typeof(String)));
+ table.Columns.Add(new DataColumn("Code", typeof(String)));
if (getWBSs.Count() > 0)
{
List newList = new List();
var projectTypes = getWBSs.Where(x => x.WBSType == "ProjectType" && x.SupId == "0");
+ int a = 1;
foreach (var item in projectTypes)
{
+ item.Code = a.ToString();
newList.Add(item);
- AddDetail(newList, getWBSs.ToList(), item.Id);
+ if (string.IsNullOrEmpty(IsOut))
+ {
+ AddDetail(newList, getWBSs.ToList(), item.Id, a.ToString());
+ }
+ else
+ {
+ AddDetail(newList, getWBSs.ToList(), item.Id, a.ToString(), string.Empty);
+ }
+ a++;
}
DataRow row;
foreach (Model.View_WBS item in newList)
@@ -370,6 +381,7 @@ namespace BLL
}
}
}
+ row[17] = item.Code;
table.Rows.Add(row);
}
}
@@ -377,13 +389,30 @@ namespace BLL
}
}
- private static void AddDetail(List newList, List oldList, string id)
+ private static void AddDetail(List newList, List oldList, string id, string preCode)
{
var items = oldList.Where(x => x.SupId == id).OrderBy(x => x.Code);
+ int b = 1;
foreach (var item in items)
{
+ item.Code = preCode + "." + b.ToString();
newList.Add(item);
- AddDetail(newList, oldList, item.Id);
+ AddDetail(newList, oldList, item.Id, item.Code);
+ b++;
+ }
+ }
+
+ private static void AddDetail(List newList, List oldList, string id, string preCode, string prefix)
+ {
+ var items = oldList.Where(x => x.SupId == id).OrderBy(x => x.Code);
+ int b = 1;
+ foreach (var item in items)
+ {
+ item.Code = preCode + "." + b.ToString();
+ item.Name = prefix + "...." + item.Name;
+ newList.Add(item);
+ AddDetail(newList, oldList, item.Id, item.Code, prefix + "....");
+ b++;
}
}
diff --git a/SGGL/BLL/Common/Const.cs b/SGGL/BLL/Common/Const.cs
index 2d1365e0..e85553c6 100644
--- a/SGGL/BLL/Common/Const.cs
+++ b/SGGL/BLL/Common/Const.cs
@@ -3342,6 +3342,11 @@
///
public const string OpinionTemplateUrl = "File\\Excel\\DataOut\\策划评审意见收集汇总表.xlsx";
+ ///
+ /// 进度计划编制模板文件原始虚拟路径
+ ///
+ public const string JDPlanTemplateUrl = "File\\Excel\\DataOut\\进度计划编制.xls";
+
#endregion
#region 初始化上传路径
diff --git a/SGGL/FineUIPro.Web/File/Excel/DataOut/进度计划编制.xls b/SGGL/FineUIPro.Web/File/Excel/DataOut/进度计划编制.xls
new file mode 100644
index 0000000000000000000000000000000000000000..90af43b5904b160f7b8034dc6fbddaf8e674cd83
GIT binary patch
literal 27648
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
V0C!5A?t$cGmp$WI9RJzm{{Y+3d
+
+
<%----%>
+
+
-
+
-
-
-
diff --git a/SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx.cs b/SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx.cs
index fba96f7f..cbde1d5b 100644
--- a/SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx.cs
+++ b/SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx.cs
@@ -3,6 +3,7 @@ using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
+using System.IO;
using System.Linq;
using System.Web.UI.WebControls;
@@ -27,7 +28,7 @@ namespace FineUIPro.Web.JDGL.Check
private void BindGrid()
{
- DataTable table = BLL.WorkPackageService.GetAllTreeDataTable(this.CurrUser.LoginProjectId);
+ DataTable table = BLL.WorkPackageService.GetAllTreeDataTable(this.CurrUser.LoginProjectId, string.Empty);
Grid1.DataSource = table;
Grid1.DataBind();
for (int i = 0; i < this.Grid1.Rows.Count; i++)
@@ -38,7 +39,7 @@ namespace FineUIPro.Web.JDGL.Check
cbIsMileStone.Visible = false;
foreach (GridColumn column in Grid1.Columns)
{
- if (column.ColumnIndex != 0)
+ if (column.ColumnIndex != 0 && column.ColumnIndex != 1)
{
this.Grid1.Rows[i].CellCssClasses[column.ColumnIndex] = "f-grid-cell-uneditable";
}
@@ -98,7 +99,7 @@ namespace FineUIPro.Web.JDGL.Check
Model.WBS_WorkPackage workPackage = workPackages.FirstOrDefault(x => x.WorkPackageId == this.Grid1.Rows[i].DataKeys[2].ToString());
if (workPackage != null)
{
- string weights = values.Value("Weights");
+ string weights = values.Value("JDWeights");
string unit = values.Value("Unit");
string planProjectQuantity = values.Value("PlanProjectQuantity");
string realProjectQuantity = values.Value("RealProjectQuantity");
@@ -107,7 +108,7 @@ namespace FineUIPro.Web.JDGL.Check
string realStartDate = values.Value("RealStartDate");
string preWorkCode = values.Value("PreWorkCode");
System.Web.UI.WebControls.CheckBox cbIsMileStone = (System.Web.UI.WebControls.CheckBox)(this.Grid1.Rows[i].FindControl("cbIsMileStone"));
- workPackage.Weights = Funs.GetNewDecimal(weights);
+ workPackage.JDWeights = Funs.GetNewDecimal(weights);
workPackage.Unit = unit;
workPackage.PlanProjectQuantity = Funs.GetNewDecimal(planProjectQuantity);
workPackage.RealProjectQuantity = Funs.GetNewDecimal(realProjectQuantity);
@@ -171,5 +172,190 @@ namespace FineUIPro.Web.JDGL.Check
}
}
#endregion
+
+ #region 导出(excel按钮)
+ protected void btnOutExcel_Click(object sender, EventArgs e)
+ {
+ if (this.Grid1.Rows.Count > 0)
+ {
+ try
+ {
+ DataTable table = BLL.WorkPackageService.GetAllTreeDataTable(this.CurrUser.LoginProjectId, "Out");
+ string projectNmae = BLL.ProjectService.GetProjectNameByProjectId(this.CurrUser.LoginProjectId);
+ if (!string.IsNullOrEmpty(projectNmae))
+ {
+ projectNmae = "(" + projectNmae + ")";
+ }
+ string rootPath = Server.MapPath("~/");
+ string initTemplatePath = string.Empty;
+ string uploadfilepath = string.Empty;
+ string newUrl = string.Empty;
+ string filePath = string.Empty;
+ initTemplatePath = Const.JDPlanTemplateUrl;
+ uploadfilepath = rootPath + initTemplatePath;
+ newUrl = uploadfilepath.Replace(".xls", projectNmae + ".xls");
+ File.Copy(uploadfilepath, newUrl);
+ // 第一步:读取文件流
+ NPOI.SS.UserModel.IWorkbook workbook;
+ using (FileStream stream = new FileStream(newUrl, FileMode.Open, FileAccess.Read))
+ {
+ workbook = new NPOI.HSSF.UserModel.HSSFWorkbook(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;
+ var font = workbook.CreateFont();
+ font.FontHeightInPoints = 12;
+ font.IsBold = true;
+ //font.FontHeightInPoints = (short)8.5;字号为小数时要转为short
+ cellStyle0.SetFont(font);
+
+ // 第二步:创建新数据行
+ NPOI.SS.UserModel.ISheet sheet = workbook.GetSheet("Sheet1");
+ NPOI.SS.UserModel.IRow row1 = sheet.CreateRow(1);
+ NPOI.SS.UserModel.ICell cell2;
+ // 添加测试数据
+ cell2 = row1.CreateCell(14);
+ cell2.CellStyle = cellStyle0;
+ cell2.SetCellValue("123");
+ var font2 = workbook.CreateFont();
+ font2.FontHeightInPoints = 10;
+
+
+
+ // 创建单元格样式
+ 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;
+ var font3 = workbook.CreateFont();
+ font3.FontHeightInPoints = 14;
+ cellStyle1.SetFont(font3);
+
+ 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.Left;
+ cellStyle2.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center;
+ cellStyle2.SetFont(font3);
+
+ int rowCount = 1;
+ NPOI.SS.UserModel.IRow row;
+ NPOI.SS.UserModel.ICell cell;
+
+ #region 填充内容
+ foreach (DataRow tr in table.Rows)
+ {
+ row = sheet.CreateRow(rowCount);
+ cell = row.CreateCell(0);
+ cell.CellStyle = cellStyle2;
+ cell.SetCellValue(tr["Code"].ToString());
+ cell = row.CreateCell(1);
+ cell.CellStyle = cellStyle2;
+ cell.SetCellValue(tr["Name"].ToString());
+ cell = row.CreateCell(2);
+ cell.CellStyle = cellStyle1;
+ cell.SetCellValue(tr["PreWorkCode"].ToString());
+ cell = row.CreateCell(3);
+ cell.CellStyle = cellStyle1;
+ if (!string.IsNullOrEmpty(tr["IsMileStone"].ToString()) && Convert.ToBoolean(tr["IsMileStone"].ToString()) == true)
+ {
+ cell.SetCellValue("是");
+ }
+ cell = row.CreateCell(4);
+ cell.CellStyle = cellStyle1;
+ if (!string.IsNullOrEmpty(tr["JDWeights"].ToString()))
+ {
+ cell.SetCellValue(decimal.Round(Convert.ToDecimal(tr["JDWeights"]), 2).ToString("0.##"));
+ }
+ cell = row.CreateCell(5);
+ cell.CellStyle = cellStyle1;
+ cell.SetCellValue(tr["Unit"].ToString());
+ cell = row.CreateCell(6);
+ cell.CellStyle = cellStyle1;
+ if (!string.IsNullOrEmpty(tr["PlanProjectQuantity"].ToString()))
+ {
+ cell.SetCellValue(decimal.Round(Convert.ToDecimal(tr["PlanProjectQuantity"]), 2).ToString("0.##"));
+ }
+ cell = row.CreateCell(7);
+ cell.CellStyle = cellStyle1;
+ if (!string.IsNullOrEmpty(tr["PlanCost"].ToString()))
+ {
+ cell.SetCellValue(decimal.Round(Convert.ToDecimal(tr["PlanCost"]), 2).ToString("0.##"));
+ }
+ cell = row.CreateCell(8);
+ cell.CellStyle = cellStyle1;
+ if (!string.IsNullOrEmpty(tr["RealProjectQuantity"].ToString()))
+ {
+ cell.SetCellValue(decimal.Round(Convert.ToDecimal(tr["RealProjectQuantity"]), 2).ToString("0.##"));
+ }
+ cell = row.CreateCell(9);
+ cell.CellStyle = cellStyle1;
+ if (tr["PlanStartDate"] != null)
+ {
+ cell.SetCellValue(string.Format("{0:yyyy-MM-dd}", tr["PlanStartDate"]));
+ }
+ cell = row.CreateCell(10);
+ cell.CellStyle = cellStyle1;
+ if (tr["PlanEndDate"] != null)
+ {
+ cell.SetCellValue(string.Format("{0:yyyy-MM-dd}", tr["PlanEndDate"]));
+ }
+ cell = row.CreateCell(11);
+ cell.CellStyle = cellStyle1;
+ if (tr["RealStartDate"] != null)
+ {
+ cell.SetCellValue(string.Format("{0:yyyy-MM-dd}", tr["RealStartDate"]));
+ }
+ cell = row.CreateCell(12);
+ cell.CellStyle = cellStyle1;
+ if (tr["RealEndDate"] != null)
+ {
+ cell.SetCellValue(string.Format("{0:yyyy-MM-dd}", tr["RealEndDate"]));
+ }
+ rowCount++;
+ }
+ #endregion
+ // 第三步:写入文件流
+ 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);
+ }
+ catch (Exception ex)
+ {
+
+ throw ex;
+ }
+ }
+ else
+ {
+ ShowNotify("没有数据,无法导出!", MessageBoxIcon.Warning);
+ }
+ }
+ #endregion
}
}
\ No newline at end of file
diff --git a/SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx.designer.cs b/SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx.designer.cs
index 656badf1..0da2811c 100644
--- a/SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx.designer.cs
+++ b/SGGL/FineUIPro.Web/JDGL/Check/PlanSet.aspx.designer.cs
@@ -75,6 +75,15 @@ namespace FineUIPro.Web.JDGL.Check {
///
protected global::FineUIPro.Button btnSave;
+ ///
+ /// btnOut 控件。
+ ///
+ ///
+ /// 自动生成的字段。
+ /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
+ ///
+ protected global::FineUIPro.Button btnOut;
+
///
/// txtPreWorkCode 控件。
///
@@ -103,13 +112,13 @@ namespace FineUIPro.Web.JDGL.Check {
protected global::System.Web.UI.WebControls.CheckBox cbIsMileStone;
///
- /// nbWeights 控件。
+ /// nbJDWeights 控件。
///
///
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
///
- protected global::FineUIPro.NumberBox nbWeights;
+ protected global::FineUIPro.NumberBox nbJDWeights;
///
/// txtUnit 控件。