From 076ea3cbf581723f6203c97d31b217dbe7cb1266 Mon Sep 17 00:00:00 2001 From: panhf <754998852@qq.com> Date: Wed, 22 May 2024 10:26:11 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9C=88=E6=8A=A5?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E5=8D=95=E4=BD=8D=E5=B1=85=E5=B7=A6=E5=AF=B9?= =?UTF-8?q?=E9=BD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CQMS/ManageReportNew/MonthReport.aspx.cs | 45 +++++++++++-------- .../CQMS/ManageReportNew/WeekReport.aspx.cs | 45 +++++++++++-------- SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user | 2 +- SGGL/WebAPI/WebAPI.csproj.user | 2 +- 4 files changed, 54 insertions(+), 40 deletions(-) diff --git a/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReport.aspx.cs b/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReport.aspx.cs index 567750f3..4df21ca0 100644 --- a/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReport.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReport.aspx.cs @@ -152,7 +152,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew * @param doc Document对象 * @return */ - public static Cell CreateCell(String value, Document doc, double cellWidth, string cellMerge = "",string CenterPage="") + public static Cell CreateCell(String value, Document doc, double cellWidth, string cellMerge = "",string CenterPage="",string cellUnitLeft="") { Cell cell = new Cell(doc); Paragraph p = new Paragraph(doc); @@ -177,7 +177,14 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //序号 value = " " + value; } - p.ParagraphFormat.Alignment = ParagraphAlignment.Center;//表格中字体居中 + if (!string.IsNullOrEmpty(cellUnitLeft)) + { + p.ParagraphFormat.Alignment = ParagraphAlignment.Left;//表格中字体居左 + } + else { + p.ParagraphFormat.Alignment = ParagraphAlignment.Center;//表格中字体居中 + } + p.AppendChild(new Run(doc, value)); @@ -413,7 +420,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.UnitOrMajor, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.UnitOrMajor, doc, table.FirstRow.Cells[1].CellFormat.Width,"","","unit")); row.Cells.Add(CreateCell(item.Quantity1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.Quantity2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[4].CellFormat.Width)); @@ -465,7 +472,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.UnitOrMajor, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.UnitOrMajor, doc, table.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.Quantity1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.Quantity2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.Quantity3.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); @@ -860,7 +867,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell((numberIndex - 1).ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.UnitName, doc, table.Rows[0].Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.UnitName, doc, table.Rows[0].Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.PipeMountGuard.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.PipeTotal.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); @@ -925,7 +932,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.UnitOrMajor, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.UnitOrMajor, doc, table.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.Quantity1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.Quantity2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[4].CellFormat.Width)); @@ -1179,14 +1186,14 @@ namespace FineUIPro.Web.CQMS.ManageReportNew pageCount += 1; } row.Cells.Add(CreateCell((pageCount).ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "0", "1")); - row.Cells.Add(CreateCell(item.CreateMan, doc, table.Rows[0].Cells[1].CellFormat.Width, "0")); + row.Cells.Add(CreateCell(item.CreateMan, doc, table.Rows[0].Cells[1].CellFormat.Width, "0", "", "unit")); Unitname = item.CreateMan; } else { row.Cells.Add(CreateCell((pageCount).ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "1", "1")); - row.Cells.Add(CreateCell(item.CreateMan, doc, table.Rows[0].Cells[1].CellFormat.Width, "1")); + row.Cells.Add(CreateCell(item.CreateMan, doc, table.Rows[0].Cells[1].CellFormat.Width, "1", "", "unit")); Unitname = item.CreateMan; } @@ -1289,7 +1296,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.UnitOrMajor, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.UnitOrMajor, doc, table.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.Quantity1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.Quantity2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.QuaRate.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); @@ -1381,7 +1388,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[4].CellFormat.Width)); @@ -2375,7 +2382,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(Convert.ToString(item.RectificationRate), doc, table.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(Convert.ToString(item.TotationRate), doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[4].CellFormat.Width)); @@ -2455,7 +2462,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); @@ -2512,7 +2519,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); @@ -2568,7 +2575,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); @@ -2625,7 +2632,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); @@ -2691,7 +2698,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.RectificationRate, doc, table.FirstRow.Cells[4].CellFormat.Width)); @@ -2799,7 +2806,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.MonthsBackCount.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); @@ -2853,7 +2860,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex18_1.ToString(), doc, table18_1.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.UnitId, doc, table18_1.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.UnitId, doc, table18_1.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.ProblemDesrioption, doc, table18_1.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.TreatmentMeasures, doc, table18_1.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.ProcessingResults, doc, table18_1.FirstRow.Cells[4].CellFormat.Width)); @@ -2890,7 +2897,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex18_2.ToString(), doc, table18_2.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.UnitId, doc, table18_2.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.UnitId, doc, table18_2.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.ProblemDesrioption, doc, table18_2.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.TreatmentMeasures, doc, table18_2.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.ProcessingResults, doc, table18_2.FirstRow.Cells[4].CellFormat.Width)); diff --git a/SGGL/FineUIPro.Web/CQMS/ManageReportNew/WeekReport.aspx.cs b/SGGL/FineUIPro.Web/CQMS/ManageReportNew/WeekReport.aspx.cs index 768c7962..ea486115 100644 --- a/SGGL/FineUIPro.Web/CQMS/ManageReportNew/WeekReport.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/ManageReportNew/WeekReport.aspx.cs @@ -152,7 +152,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew * @param doc Document对象 * @return */ - public static Cell CreateCell(String value, Document doc, double cellWidth, string cellMerge = "", string CenterPage = "") + public static Cell CreateCell(String value, Document doc, double cellWidth, string cellMerge = "", string CenterPage = "", string cellUnitLeft = "") { Cell cell = new Cell(doc); Paragraph p = new Paragraph(doc); @@ -177,7 +177,14 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //序号 value = " " + value; } - p.ParagraphFormat.Alignment = ParagraphAlignment.Center; + if (!string.IsNullOrEmpty(cellUnitLeft)) + { + p.ParagraphFormat.Alignment = ParagraphAlignment.Left;//表格中字体居左 + } + else + { + p.ParagraphFormat.Alignment = ParagraphAlignment.Center;//表格中字体居中 + } p.AppendChild(new Run(doc, value)); @@ -418,7 +425,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.UnitOrMajor, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.UnitOrMajor, doc, table.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.Quantity1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.Quantity2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[4].CellFormat.Width)); @@ -470,7 +477,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.UnitOrMajor, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.UnitOrMajor, doc, table.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.Quantity1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.Quantity2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.Quantity3.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); @@ -867,7 +874,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell((numberIndex - 1).ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.UnitName, doc, table.Rows[0].Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.UnitName, doc, table.Rows[0].Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.PipeMountGuard.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.PipeTotal.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); @@ -932,7 +939,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.UnitOrMajor, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.UnitOrMajor, doc, table.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.Quantity1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.Quantity2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[4].CellFormat.Width)); @@ -1187,14 +1194,14 @@ namespace FineUIPro.Web.CQMS.ManageReportNew pageCount += 1; } row.Cells.Add(CreateCell((pageCount).ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "0", "1")); - row.Cells.Add(CreateCell(item.CreateMan, doc, table.Rows[0].Cells[1].CellFormat.Width, "0")); + row.Cells.Add(CreateCell(item.CreateMan, doc, table.Rows[0].Cells[1].CellFormat.Width, "0", "", "unit")); Unitname = item.CreateMan; } else { row.Cells.Add(CreateCell((pageCount).ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "1", "1")); - row.Cells.Add(CreateCell(item.CreateMan, doc, table.Rows[0].Cells[1].CellFormat.Width, "1")); + row.Cells.Add(CreateCell(item.CreateMan, doc, table.Rows[0].Cells[1].CellFormat.Width, "1", "", "unit")); Unitname = item.CreateMan; } @@ -1298,7 +1305,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.UnitOrMajor, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.UnitOrMajor, doc, table.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.Quantity1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.Quantity2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.QuaRate.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); @@ -1391,7 +1398,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[4].CellFormat.Width)); @@ -2385,7 +2392,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(Convert.ToString(item.RectificationRate), doc, table.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(Convert.ToString(item.TotationRate), doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[4].CellFormat.Width)); @@ -2465,7 +2472,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); @@ -2522,7 +2529,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); @@ -2578,7 +2585,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); @@ -2635,7 +2642,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); @@ -2701,7 +2708,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.RectificationRate, doc, table.FirstRow.Cells[4].CellFormat.Width)); @@ -2809,7 +2816,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.MonthsBackCount.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); @@ -2863,7 +2870,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex18_1.ToString(), doc, table18_1.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.UnitId, doc, table18_1.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.UnitId, doc, table18_1.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.ProblemDesrioption, doc, table18_1.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.TreatmentMeasures, doc, table18_1.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.ProcessingResults, doc, table18_1.FirstRow.Cells[4].CellFormat.Width)); @@ -2900,7 +2907,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex18_2.ToString(), doc, table18_2.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.UnitId, doc, table18_2.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.UnitId, doc, table18_2.FirstRow.Cells[1].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.ProblemDesrioption, doc, table18_2.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.TreatmentMeasures, doc, table18_2.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.ProcessingResults, doc, table18_2.FirstRow.Cells[4].CellFormat.Width)); diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user index b52b49a8..b8cc84be 100644 --- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user +++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user @@ -1,7 +1,7 @@  - Release|Any CPU + Debug|Any CPU true false diff --git a/SGGL/WebAPI/WebAPI.csproj.user b/SGGL/WebAPI/WebAPI.csproj.user index bd497c6b..5fe155da 100644 --- a/SGGL/WebAPI/WebAPI.csproj.user +++ b/SGGL/WebAPI/WebAPI.csproj.user @@ -1,7 +1,7 @@  - Release|Any CPU + Debug|Any CPU true From d0e8c438d2e8060f44b6b38ba94cdb486548e0bd Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Wed, 22 May 2024 10:31:05 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SGGL/Model/Model.cs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/SGGL/Model/Model.cs b/SGGL/Model/Model.cs index b133a0e9..9187fdb4 100644 --- a/SGGL/Model/Model.cs +++ b/SGGL/Model/Model.cs @@ -103358,6 +103358,8 @@ namespace Model private System.Nullable _Sort; + private System.Nullable _States; + #region 可扩展性方法定义 partial void OnLoaded(); partial void OnValidate(System.Data.Linq.ChangeAction action); @@ -103404,6 +103406,8 @@ namespace Model partial void OnOperateTimeChanged(); partial void OnSortChanging(System.Nullable value); partial void OnSortChanged(); + partial void OnStatesChanging(System.Nullable value); + partial void OnStatesChanged(); #endregion public Control_PointCropping() @@ -103831,6 +103835,26 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_States", DbType="Int")] + public System.Nullable States + { + get + { + return this._States; + } + set + { + if ((this._States != value)) + { + this.OnStatesChanging(value); + this.SendPropertyChanging(); + this._States = value; + this.SendPropertyChanged("States"); + this.OnStatesChanged(); + } + } + } + public event PropertyChangingEventHandler PropertyChanging; public event PropertyChangedEventHandler PropertyChanged; From ede8dcdb11260235cabf336fc26cbd5a542ecad0 Mon Sep 17 00:00:00 2001 From: wq <945983254@qq.com> Date: Wed, 22 May 2024 17:00:58 +0800 Subject: [PATCH 3/6] 1 --- .../File/Excel/WBS/单位分部分项工程划分.xlsx | Bin 0 -> 67529 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 SGGL/FineUIPro.Web/File/Excel/WBS/单位分部分项工程划分.xlsx diff --git a/SGGL/FineUIPro.Web/File/Excel/WBS/单位分部分项工程划分.xlsx b/SGGL/FineUIPro.Web/File/Excel/WBS/单位分部分项工程划分.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..b4112cedfcc80868c0023414bb57ae96892a37cd GIT binary patch literal 67529 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 z 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 bHG+Td&}Sk#zdh{tzK;h5K*L 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 literal 0 HcmV?d00001 From 51b5b67f17052fb167932e4d71d1892dd176a5d9 Mon Sep 17 00:00:00 2001 From: wq <945983254@qq.com> Date: Wed, 22 May 2024 17:01:24 +0800 Subject: [PATCH 4/6] 3 --- SGGL/BLL/Common/Const.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/SGGL/BLL/Common/Const.cs b/SGGL/BLL/Common/Const.cs index 60ce8daa..f1bc27e2 100644 --- a/SGGL/BLL/Common/Const.cs +++ b/SGGL/BLL/Common/Const.cs @@ -3124,6 +3124,10 @@ namespace BLL /// public const string PreRunUrl = "File\\Excel\\TestRun\\系统划分.xlsx"; /// + /// 单位分部分项工程划分 + /// + public const string WBSDivisionUrl = "File\\Excel\\WBS\\单位分部分项工程划分.xlsx"; + /// /// 管道一览表 /// public const string PropertyUrl = "File\\Excel\\TestRun\\管道一览表.xlsx"; From 73d4798722e3885810aecfba5e7d9e78155090e7 Mon Sep 17 00:00:00 2001 From: wq <945983254@qq.com> Date: Wed, 22 May 2024 17:54:38 +0800 Subject: [PATCH 5/6] 3 --- .../CQMS/WBS/Control/DivisionSubProjects.aspx | 98 +++ .../WBS/Control/DivisionSubProjects.aspx.cs | 789 ++++++++++++++++++ .../DivisionSubProjects.aspx.designer.cs | 179 ++++ .../WBS/Control/DivisionSubProjectsEdit.aspx | 16 + .../Control/DivisionSubProjectsEdit.aspx.cs | 17 + .../DivisionSubProjectsEdit.aspx.designer.cs | 26 + 6 files changed, 1125 insertions(+) create mode 100644 SGGL/FineUIPro.Web/CQMS/WBS/Control/DivisionSubProjects.aspx create mode 100644 SGGL/FineUIPro.Web/CQMS/WBS/Control/DivisionSubProjects.aspx.cs create mode 100644 SGGL/FineUIPro.Web/CQMS/WBS/Control/DivisionSubProjects.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/CQMS/WBS/Control/DivisionSubProjectsEdit.aspx create mode 100644 SGGL/FineUIPro.Web/CQMS/WBS/Control/DivisionSubProjectsEdit.aspx.cs create mode 100644 SGGL/FineUIPro.Web/CQMS/WBS/Control/DivisionSubProjectsEdit.aspx.designer.cs diff --git a/SGGL/FineUIPro.Web/CQMS/WBS/Control/DivisionSubProjects.aspx b/SGGL/FineUIPro.Web/CQMS/WBS/Control/DivisionSubProjects.aspx new file mode 100644 index 00000000..be2eca33 --- /dev/null +++ b/SGGL/FineUIPro.Web/CQMS/WBS/Control/DivisionSubProjects.aspx @@ -0,0 +1,98 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DivisionSubProjects.aspx.cs" Inherits="FineUIPro.Web.CQMS.WBS.Control.DivisionSubProjects" %> + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/CQMS/WBS/Control/DivisionSubProjects.aspx.cs b/SGGL/FineUIPro.Web/CQMS/WBS/Control/DivisionSubProjects.aspx.cs new file mode 100644 index 00000000..9e25e008 --- /dev/null +++ b/SGGL/FineUIPro.Web/CQMS/WBS/Control/DivisionSubProjects.aspx.cs @@ -0,0 +1,789 @@ +using BLL; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.IO; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using static FineUIPro.Web.CQMS.WBS.Control.DivisionSubProjects; + +namespace FineUIPro.Web.CQMS.WBS.Control +{ + public partial class DivisionSubProjects : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + DataBrid(); + } + } + + #region 数据绑定和事件 + + /// + /// 数据绑定 + /// + public void DataBrid() + { + string strSql = @"select a.Division,a.ProjectId,a.ParentId,a.DivisionLevel,a.EngineeringCode,a.EngineeringName,a.SubEngineeringCode,a.SubEngineeringName,a.BranchEngineeringCode,a.BranchEngineeringName,a.SubBranchEngineeringName,a.ProEngineeringCode,a.ProEngineeringName,a.ProEngineeringNum,a.Remark,a.AddUser,a.OperateTime,a.Sort from Division_SubProjects as a inner join Base_Project as b on a.ProjectId=b.ProjectId where a.ProjectId=@ProjectId order by a.Sort,a.DivisionLevel asc"; + List listStr = new List(); + listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); + if (!string.IsNullOrEmpty(sEngineeringName.Text.Trim())) + { + strSql += " and a.EngineeringName=@EngineeringName"; + listStr.Add(new SqlParameter("@EngineeringName", this.sEngineeringName.Text.Trim())); + } + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); + Grid1.DataSource = tb; + Grid1.DataBind(); + } + + /// + /// 行点击 事件 + /// + protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) + { + if (e.CommandName == "Delete") + { + string rowID = e.RowID; + DeleteRowByIDInternal(rowID); + DataBrid(); + ShowNotify("删除成功!"); + } + } + + /// + /// 行加载事件 + /// + protected void Grid1_RowDataBound(object sender, GridRowEventArgs e) + { + + } + + #endregion + + #region 按钮 + + /// + /// 搜索 + /// + protected void btnSearch_Click(object sender, EventArgs e) + { + DataBrid(); + } + + /// + /// 删除 + /// + protected void btnDelete_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + ShowNotify("至少选择一条数据!"); + return; + } + foreach (int rowIndex in Grid1.SelectedRowIndexArray) + { + string rowID = Grid1.DataKeys[rowIndex][0].ToString(); + DeleteRowByIDInternal(rowID); + } + DataBrid(); + ShowNotify("删除成功!"); + + } + + /// + /// 新增 + /// + protected void btnAdd_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(Window1.GetShowReference($"DivisionSubProjectsEdit.aspx?DivisionId=&ParentId=", "新增")); + } + + /// + /// 添加子级 + /// + protected void btnParentAdd_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + ShowNotify("请选择一条数据!", MessageBoxIcon.Warning); + return; + } + + var rowIndex = Grid1.SelectedRowIndex; + var rowId = Grid1.DataKeys[rowIndex][0].ToString(); + var runLevel = Grid1.DataKeys[rowIndex][2] != null ? Convert.ToInt32(Grid1.DataKeys[rowIndex][2]) : 1; + if (runLevel > 5) + { + ShowNotify("最小节点无子节点!", MessageBoxIcon.Warning); + return; + } + PageContext.RegisterStartupScript(Window1.GetShowReference($"DivisionSubProjectsEdit.aspx?RunId=&ParentId={rowId}", "添加子级")); + } + + /// + /// 编辑 + /// + protected void btnEdit_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + ShowNotify("请选择一条数据!", MessageBoxIcon.Warning); + return; + } + + var rowIndex = Grid1.SelectedRowIndex; + var rowId = Grid1.DataKeys[rowIndex][0].ToString(); + var parentId = Grid1.DataKeys[rowIndex][1] != null ? Grid1.DataKeys[rowIndex][1].ToString() : string.Empty; + PageContext.RegisterStartupScript(Window1.GetShowReference($"DivisionSubProjectsEdit.aspx?RunId={rowId}&ParentId={parentId}", "编辑")); + } + + /// + /// 关闭 + /// + protected void Window1_Close(object sender, WindowCloseEventArgs e) + { + DataBrid(); + } + + /// + /// 导入 + /// + protected void btnImport_Click(object sender, EventArgs e) + { + try + { + if (this.fileData.HasFile == false) + { + ShowNotify("请选择excel文件!", MessageBoxIcon.Warning); + return; + } + string IsXls = Path.GetExtension(this.fileData.FileName).ToString().Trim().ToLower(); + if (IsXls != ".xls" && IsXls != ".xlsx") + { + this.fileData.Reset(); + ShowNotify("excel文件类型错误!", MessageBoxIcon.Warning); + return; + } + string rootPath = Server.MapPath("~/"); + string initFullPath = rootPath + Const.ExcelUrl; + if (!Directory.Exists(initFullPath)) + { + Directory.CreateDirectory(initFullPath); + } + //指定上传文件名称 + string fileUrl = BLL.Funs.GetNewFileName() + IsXls; + //上传文件路径 + string filePath = initFullPath + fileUrl; + //文件上传服务器 + this.fileData.PostedFile.SaveAs(filePath); + //文件上传服务器后的名称 + string fileName = rootPath + Const.ExcelUrl + fileUrl; + //读取Excel + DataSet ds = NPOIHelper.ExcelToDataSet(fileName, out string message, false); + if (ds == null) + { + this.fileData.Reset(); + ShowNotify("模板错误,请从系统下载正确的模板!", MessageBoxIcon.Warning); + return; + } + if (!string.IsNullOrWhiteSpace(message)) + { + ShowNotify(message, MessageBoxIcon.Warning); + return; + } + if (ds.Tables[0].Rows.Count > 1) + { + var fileVerify = VerifyFile(ds); + if (!fileVerify) + { + this.fileData.Reset(); + ShowNotify("请获取正确模板!", MessageBoxIcon.Warning); + return; + } + + int index = 1; + List list = new List(); + DivisionSubProjectsDto previousModel = new DivisionSubProjectsDto(); + foreach (DataRow item in ds.Tables[0].Rows) + { + DivisionSubProjectsDto model = new DivisionSubProjectsDto(); + if (index == 1) + { + index++; + continue; + } + if (StrIsNumm(item[10])) + { + this.fileData.Reset(); + ShowNotify($"{index}级别为空!", MessageBoxIcon.Warning); + break; + } + + previousModel.Level = int.Parse(item[10].ToString()); + previousModel.EngineeringCode = item[0].ToString(); + previousModel.EngineeringName = item[1].ToString(); + previousModel.SubEngineeringCode = item[2].ToString(); + previousModel.SubEngineeringName = item[3].ToString(); + previousModel.BranchEngineeringCode = item[4].ToString(); + previousModel.BranchEngineeringName = item[5].ToString(); + previousModel.SubBranchEngineeringName = item[6].ToString(); + previousModel.ProEngineeringCode = item[7].ToString(); + previousModel.ProEngineeringName = item[8].ToString(); + previousModel.ProEngineeringNum = item[9].ToString(); + previousModel.ParentId = ""; + + + + + ////判断是否为装置 + //if (!StrIsNumm(item[0]) && !StrIsNumm(item[1]) && StrIsNumm(item[2]) && StrIsNumm(item[3]) && StrIsNumm(item[4]) && StrIsNumm(item[5]) && StrIsNumm(item[6]) && StrIsNumm(item[7])) + //{ + // model.InstallationCode = item[0].ToString(); + // model.InstallationName = item[1].ToString(); + // model.Level = 1; + //} + ////判断是否为工序 + //else if (!StrIsNumm(item[0]) && !StrIsNumm(item[1]) && !StrIsNumm(item[2]) && !StrIsNumm(item[3]) && StrIsNumm(item[4]) && StrIsNumm(item[5]) && StrIsNumm(item[6]) && StrIsNumm(item[7])) + //{ + // model.InstallationCode = item[0].ToString(); + // model.InstallationName = item[1].ToString(); + // model.ProcessesCode = item[2].ToString(); + // model.ProcessesName = item[3].ToString(); + // model.Level = 2; + //} + ////判断是否为系统 + //else if (!StrIsNumm(item[0]) && !StrIsNumm(item[1]) && !StrIsNumm(item[2]) && !StrIsNumm(item[3]) && !StrIsNumm(item[4]) && !StrIsNumm(item[5]) && StrIsNumm(item[6]) && StrIsNumm(item[7])) + //{ + // model.InstallationCode = item[0].ToString(); + // model.InstallationName = item[1].ToString(); + // model.ProcessesCode = item[2].ToString(); + // model.ProcessesName = item[3].ToString(); + // model.SystemCode = item[4].ToString(); + // model.SystemName = item[5].ToString(); + // model.Level = 3; + //} + ////判断是否为子系统 + //else if (!StrIsNumm(item[0]) && !StrIsNumm(item[1]) && !StrIsNumm(item[2]) && !StrIsNumm(item[3]) && !StrIsNumm(item[4]) && !StrIsNumm(item[5]) && !StrIsNumm(item[6]) && !StrIsNumm(item[7])) + //{ + // model.InstallationCode = item[0].ToString(); + // model.InstallationName = item[1].ToString(); + // model.ProcessesCode = item[2].ToString(); + // model.ProcessesName = item[3].ToString(); + // model.SystemCode = item[4].ToString(); + // model.SystemName = item[5].ToString(); + // model.SubsystemCode = item[6].ToString(); + // model.SubsystemName = item[7].ToString(); + // model.Level = 4; + //} + //else + //{ + // this.fileData.Reset(); + // ShowNotify($"{index}行数据存在错误,数据格式具体见模板说明为空!", MessageBoxIcon.Warning); + // break; + //} + list.Add(model); + index++; + previousModel = new DivisionSubProjectsDto(); + } + + #region 数据验证 + + ////验证装置编码 + //if (list.Count(x => x.Level == 1) > 0) + //{ + // var installationCodes = list.Where(x => x.Level == 1).Select(a => a.InstallationCode); + // var importCodes = installationCodes.GroupBy(x => x).Where(x => x.Count() > 1).Select(x => x.Key).ToList(); + // if (importCodes.Count > 0) + // { + // this.fileData.Reset(); + // ShowNotify($"EXCEL中装置编码{string.Join(",", importCodes)}重复,请调整模板数据!", MessageBoxIcon.Warning); + // return; + // } + // installationCodes = installationCodes.Distinct(); + // if (installationCodes.Count() > 0) + // { + // var existInstallations = Funs.DB.PreRun_SysDevice.Where(a => installationCodes.Contains(a.PreRunCode) && a.PreRunLevel == 1 && a.ProjectId == this.CurrUser.LoginProjectId).ToList(); + // if (existInstallations.Count > 0) + // { + // this.fileData.Reset(); + // ShowNotify($"装置编码({string.Join(",", existInstallations.ConvertAll(s => s.PreRunCode))})已存在!", MessageBoxIcon.Warning); + // return; + // } + // } + + //} + ////验证工序编码 + //if (list.Count(x => x.Level == 2) > 0) + //{ + // var processesCodes = list.Where(x => x.Level == 2).Select(a => a.ProcessesCode); + // var importCodes = processesCodes.GroupBy(x => x).Where(x => x.Count() > 1).Select(x => x.Key).ToList(); + // if (importCodes.Count > 0) + // { + // this.fileData.Reset(); + // ShowNotify($"EXCEL中工序编码{string.Join(",", importCodes)}重复,请调整模板数据!", MessageBoxIcon.Warning); + // return; + // } + // processesCodes = processesCodes.Distinct(); + // if (processesCodes.Count() > 0) + // { + // var existProcessess = Funs.DB.PreRun_SysDevice.Where(a => processesCodes.Contains(a.PreRunCode) && a.PreRunLevel == 2 && a.ProjectId == this.CurrUser.LoginProjectId).ToList(); + // if (existProcessess.Count > 0) + // { + // this.fileData.Reset(); + // ShowNotify($"工序编码({string.Join(",", existProcessess.ConvertAll(s => s.PreRunCode))})已存在!", MessageBoxIcon.Warning); + // return; + // } + // } + //} + ////验证系统编码 + //if (list.Count(x => x.Level == 3) > 0) + //{ + // var systemCodes = list.Where(x => x.Level == 3).Select(a => a.SystemCode); + // var importCodes = systemCodes.GroupBy(x => x).Where(x => x.Count() > 1).Select(x => x.Key).ToList(); + // if (importCodes.Count > 0) + // { + // this.fileData.Reset(); + // ShowNotify($"EXCEL中系统编码{string.Join(",", importCodes)}重复,请调整模板数据!", MessageBoxIcon.Warning); + // return; + // } + // systemCodes = systemCodes.Distinct().ToList(); + // if (systemCodes.Count() > 0) + // { + // var existSystems = Funs.DB.PreRun_SysDevice.Where(a => systemCodes.Contains(a.PreRunCode) && a.PreRunLevel == 3 && a.ProjectId == this.CurrUser.LoginProjectId).ToList(); + // if (existSystems.Count > 0) + // { + // this.fileData.Reset(); + // ShowNotify($"系统编码({string.Join(",", existSystems.ConvertAll(s => s.PreRunCode))})已存在!", MessageBoxIcon.Warning); + // return; + // } + // } + //} + ////验证子系统编码 + //if (list.Count(x => x.Level == 4) > 0) + //{ + // var subsystemCodes = list.Where(x => x.Level == 4).Select(a => a.SubsystemCode); + // var importCodes = subsystemCodes.GroupBy(x => x).Where(x => x.Count() > 1).Select(x => x.Key).ToList(); + // if (importCodes.Count > 0) + // { + // this.fileData.Reset(); + // ShowNotify($"EXCEL中子系统编码{string.Join(",", importCodes)}重复,请调整模板数据!", MessageBoxIcon.Warning); + // return; + // } + // subsystemCodes = subsystemCodes.Distinct().ToList(); + // if (subsystemCodes.Count() > 0) + // { + // var existSubsystems = Funs.DB.PreRun_SysDevice.Where(a => subsystemCodes.Contains(a.PreRunCode) && a.PreRunLevel == 4 && a.ProjectId == this.CurrUser.LoginProjectId).ToList(); + // if (existSubsystems.Count > 0) + // { + // this.fileData.Reset(); + // ShowNotify($"子系统编码({string.Join(",", existSubsystems.ConvertAll(s => s.PreRunCode))})已存在!", MessageBoxIcon.Warning); + // return; + // } + // } + //} + + #endregion + + #region 数据处理 + + //var installationData = new List(); + //var processesData = new List(); + //var systemData = new List(); + + ////处理装置 + //if (list.Count(x => x.Level == 1) > 0) + //{ + // list.Where(x => x.Level == 1).ToList().ForEach(a => + // { + // a.InstallationId = Guid.NewGuid().ToString(); + // }); + //} + ////处理工序 + //if (list.Count(x => x.Level == 2) > 0) + //{ + // var codes = list.ConvertAll(a => a.InstallationCode).Distinct(); + // installationData = Funs.DB.PreRun_SysDevice.Where(x => x.PreRunLevel == 1 && codes.Contains(x.PreRunCode)).ToList(); + // list.Where(x => x.Level == 2).ToList().ForEach(a => + // { + // //装置 + // if (list.Count(p => p.InstallationCode == a.InstallationCode && p.Level == 1) > 0) + // { + // a.InstallationId = list.FirstOrDefault(p => p.InstallationCode == a.InstallationCode && p.Level == 1).InstallationId; + // } + // else if (installationData.Count(p => p.PreRunCode == a.InstallationCode) > 0) + // { + // a.InstallationId = installationData.FirstOrDefault(p => p.PreRunCode == a.InstallationCode).PreRunId; + // } + // //上级编码 + // a.ParentId = a.InstallationId; + // //工序 + // a.ProcessesId = Guid.NewGuid().ToString(); + // }); + //} + ////处理系统 + //if (list.Count(x => x.Level == 3) > 0) + //{ + // var codes = list.ConvertAll(a => a.ProcessesCode).Distinct(); + // processesData = Funs.DB.PreRun_SysDevice.Where(x => x.PreRunLevel == 2 && codes.Contains(x.PreRunCode)).ToList(); + // list.Where(x => x.Level == 3).ToList().ForEach(a => + // { + // //装置 + // if (list.Count(p => p.InstallationCode == a.InstallationCode && p.Level == 1) > 0) + // { + // a.InstallationId = list.FirstOrDefault(p => p.InstallationCode == a.InstallationCode && p.Level == 1).InstallationId; + // } + // else if (installationData.Count(p => p.PreRunCode == a.InstallationCode) > 0) + // { + // a.InstallationId = installationData.FirstOrDefault(p => p.PreRunCode == a.InstallationCode).PreRunId; + // } + // //工序 + // if (list.Count(p => p.ProcessesCode == a.ProcessesCode && p.Level == 2) > 0) + // { + // a.ProcessesId = list.FirstOrDefault(p => p.ProcessesCode == a.ProcessesCode && p.Level == 2).ProcessesId; + // } + // else if (processesData.Count(p => p.PreRunCode == a.ProcessesCode) > 0) + // { + // a.ProcessesId = processesData.FirstOrDefault(p => p.PreRunCode == a.ProcessesCode).PreRunId; + // } + // //上级编码 + // a.ParentId = a.ProcessesId; + // //系统 + // a.SystemId = Guid.NewGuid().ToString(); + // }); + //} + ////处理子系统 + //if (list.Count(x => x.Level == 4) > 0) + //{ + // var codes = list.ConvertAll(a => a.SystemCode).Distinct(); + // systemData = Funs.DB.PreRun_SysDevice.Where(x => x.PreRunLevel == 3 && codes.Contains(x.PreRunCode)).ToList(); + // list.Where(x => x.Level == 4).ToList().ForEach(a => + // { + // //装置 + // if (list.Count(p => p.InstallationCode == a.InstallationCode && p.Level == 1) > 0) + // { + // a.InstallationId = list.FirstOrDefault(p => p.InstallationCode == a.InstallationCode && p.Level == 1).InstallationId; + // } + // else if (installationData.Count(p => p.PreRunCode == a.InstallationCode) > 0) + // { + // a.InstallationId = installationData.FirstOrDefault(p => p.PreRunCode == a.InstallationCode).PreRunId; + // } + // //工序 + // if (list.Count(p => p.ProcessesCode == a.ProcessesCode && p.Level == 2) > 0) + // { + // a.ProcessesId = list.FirstOrDefault(p => p.ProcessesCode == a.ProcessesCode && p.Level == 2).ProcessesId; + // } + // else if (processesData.Count(p => p.PreRunCode == a.ProcessesCode) > 0) + // { + // a.ProcessesId = processesData.FirstOrDefault(p => p.PreRunCode == a.ProcessesCode).PreRunId; + // } + // //系统 + // if (list.Count(p => p.SystemCode == a.SystemCode && p.Level == 3) > 0) + // { + // a.SystemId = list.FirstOrDefault(p => p.SystemCode == a.SystemCode && p.Level == 3).SystemId; + // } + // else if (systemData.Count(p => p.PreRunCode == a.SystemCode) > 0) + // { + // a.SystemId = systemData.FirstOrDefault(p => p.PreRunCode == a.SystemCode).PreRunId; + // } + // //上级编码 + // a.ParentId = a.SystemId; + // //子系统 + // a.SubsystemId = Guid.NewGuid().ToString(); + // }); + //} + + #endregion + + #region 数据入库 + + //var listData = new List(); + //int oneIndex = 1; + //int twoIndex = 1; + //int threeIndex = 1; + //int fourIndex = 1; + //foreach (var itemData in list) + //{ + // var model = new PreRun_SysDevice(); + // model.ProjectId = this.CurrUser.LoginProjectId; + // model.PreRunLevel = itemData.Level; + // if (itemData.Level == 1) + // { + // model.PreRunId = itemData.InstallationId; + // model.PreRunCode = itemData.InstallationCode; + // model.PreRunName = itemData.InstallationName; + // model.ParentId = itemData.ParentId; + // model.AddUser = CurrUser.Account; + // model.OperateTime = DateTime.Now; + // model.Sort = Funs.DB.PreRun_SysDevice.Count(p => p.ProjectId == CurrUser.LoginProjectId) + oneIndex; + // oneIndex++; + // } + // if (itemData.Level == 2) + // { + // model.PreRunId = itemData.ProcessesId; + // model.ProcessesId = itemData.ProcessesId; + // model.PreRunCode = itemData.ProcessesCode; + // model.PreRunName = itemData.ProcessesName; + // model.InstallationId = itemData.InstallationId; + // model.ParentId = itemData.ParentId; + // model.AddUser = CurrUser.Account; + // model.OperateTime = DateTime.Now; + // model.Sort = Funs.DB.PreRun_SysDevice.Count(p => p.ProjectId == CurrUser.LoginProjectId) + twoIndex; + // twoIndex++; + // } + // if (itemData.Level == 3) + // { + // model.PreRunId = itemData.SystemId; + // model.SystemId = itemData.SystemId; + // model.PreRunCode = itemData.SystemCode; + // model.PreRunName = itemData.SystemName; + // model.InstallationId = itemData.InstallationId; + // model.ProcessesId = itemData.ProcessesId; + // model.ParentId = itemData.ParentId; + // model.AddUser = CurrUser.Account; + // model.OperateTime = DateTime.Now; + // model.Sort = Funs.DB.PreRun_SysDevice.Count(p => p.ProjectId == CurrUser.LoginProjectId) + threeIndex; + // threeIndex++; + // } + // if (itemData.Level == 4) + // { + // model.PreRunId = itemData.SubsystemId; + // model.SubsystemId = itemData.SubsystemId; + // model.PreRunCode = itemData.SubsystemCode; + // model.PreRunName = itemData.SubsystemName; + // model.InstallationId = itemData.InstallationId; + // model.ProcessesId = itemData.ProcessesId; + // model.SystemId = itemData.SystemId; + // model.ParentId = itemData.ParentId; + // model.AddUser = CurrUser.Account; + // model.OperateTime = DateTime.Now; + // model.Sort = Funs.DB.PreRun_SysDevice.Count(p => p.ProjectId == CurrUser.LoginProjectId) + fourIndex; + // fourIndex++; + // } + // listData.Add(model); + //} + + //Funs.DB.PreRun_SysDevice.InsertAllOnSubmit(listData); + //Funs.DB.SubmitChanges(); + //ShowNotify("导入成功!", MessageBoxIcon.Success); + + #endregion + } + else + { + this.fileData.Reset(); + ShowNotify("文件无数据!", MessageBoxIcon.Warning); + } + DataBrid(); + this.fileData.Reset(); + } + catch (Exception ex) + { + this.fileData.Reset(); + ShowNotify(ex.Message, MessageBoxIcon.Warning); + } + } + + /// + /// 下载模板 + /// + protected void btnDownLoad_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(Confirm.GetShowReference("是否确认下载模板?", String.Empty, MessageBoxIcon.Question, PageManager1.GetCustomEventReference(false, "Confirm_OK"), PageManager1.GetCustomEventReference("Confirm_Cancel"))); + } + + /// + /// 下载导入模板 + /// + protected void PageManager1_CustomEvent(object sender, CustomEventArgs e) + { + if (e.EventArgument == "Confirm_OK") + { + string rootPath = Server.MapPath("~/"); + string uploadfilepath = rootPath + Const.WBSDivisionUrl; + string filePath = Const.WBSDivisionUrl; + string fileName = Path.GetFileName(filePath); + FileInfo info = new FileInfo(uploadfilepath); + long fileSize = info.Length; + Response.ClearContent(); + Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); + Response.ContentType = "excel/plain"; + Response.ContentEncoding = System.Text.Encoding.UTF8; + Response.AddHeader("Content-Length", fileSize.ToString().Trim()); + Response.TransmitFile(uploadfilepath, 0, fileSize); + Response.End(); + } + } + + /// + /// 右击修改 + /// + protected void btnMenuModify_Click(object sender, EventArgs e) + { + btnEdit_Click(sender, e); + } + + /// + /// 右击新增子级别 + /// + protected void btnMenuParentAdd_Click(object sender, EventArgs e) + { + btnParentAdd_Click(sender, e); + } + + #endregion + + #region 私有方法 + + /// + /// 根据行ID来删除行数据 + /// + private void DeleteRowByIDInternal(string rowID) + { + var model = Funs.DB.Division_SubProjects.FirstOrDefault(p => p.DivisionId == rowID); + if (model != null) + { + Funs.DB.Division_SubProjects.DeleteOnSubmit(model); + GetDevice(rowID); + } + Funs.DB.SubmitChanges(); + } + + /// + /// 删除 + /// + private void GetDevice(string id) + { + var model = Funs.DB.Division_SubProjects.FirstOrDefault(p => p.ParentId == id); + if (model != null) + { + Funs.DB.Division_SubProjects.DeleteOnSubmit(model); + GetDevice(model.DivisionId); + } + } + + /// + /// 验证单位分部分项工程划分模板是否正确 + /// + /// + /// + private bool VerifyFile(DataSet ds) + { + var result = true; + if (ds.Tables[0].Rows[1][0].ToString().Contains("单位工程名称")) result = false; + if (ds.Tables[0].Rows[1][1].ToString().Contains("子单位工程编码")) result = false; + if (ds.Tables[0].Rows[1][2].ToString().Contains("子单位工程名称")) result = false; + if (ds.Tables[0].Rows[1][3].ToString().Contains("分部工程编号")) result = false; + if (ds.Tables[0].Rows[1][4].ToString().Contains("分部工程名称")) result = false; + if (ds.Tables[0].Rows[1][5].ToString().Contains("子分部工程名称")) result = false; + if (ds.Tables[0].Rows[1][6].ToString().Contains("分项工程编号")) result = false; + if (ds.Tables[0].Rows[1][7].ToString().Contains("分项工程名称")) result = false; + if (ds.Tables[0].Rows[1][7].ToString().Contains("分部分项码")) result = false; + if (ds.Tables[0].Rows[1][7].ToString().Contains("级别")) result = false; + return result; + } + + /// + /// 验证datatable某列是否存在重复 + /// + /// + public bool HasRepeatData(DataTable dt, string[] colName) + { + bool flag = false; + DataView myDataView = new DataView(dt); + if (myDataView.ToTable(true, colName).Rows.Count < dt.Rows.Count) + { + flag = true; + } + return flag; + } + + /// + /// 获取某一列的所有值 + /// + /// 列数据类型 + /// 数据表 + /// 列名 + /// + public static List GetColumnValues(DataTable dtSource, string filedName) + { + return (from r in dtSource.AsEnumerable() select r.Field(filedName)).ToList(); + } + + /// + /// 判断是否为空 + /// + /// + public bool StrIsNumm(object value) + { + bool result = false; + if (value == null) result = true; + if (string.IsNullOrWhiteSpace(value.ToString())) result = true; + return result; + } + + /// + /// 单位分部分项工程划分信息 + /// + public class DivisionSubProjectsDto + { + /// + /// 上级主键 + /// + public string ParentId { get; set; } + /// + /// 级别 + /// + public int Level { get; set; } + /// + /// 单位工程编码 + /// + public string EngineeringCode { get; set; } + /// + /// 单位工程名称 + /// + public string EngineeringName { get; set; } + /// + /// 子单位工程编码 + /// + public string SubEngineeringCode { get; set; } + /// + /// 子单位工程名称 + /// + public string SubEngineeringName { get; set; } + /// + /// 分部工程编号 + /// + public string BranchEngineeringCode { get; set; } + /// + /// 分部工程名称 + /// + public string BranchEngineeringName { get; set; } + /// + /// 子分部工程名称 + /// + public string SubBranchEngineeringName { get; set; } + /// + /// 分项工程编号 + /// + public string ProEngineeringCode { get; set; } + /// + /// 分项工程名称 + /// + public string ProEngineeringName { get; set; } + /// + /// 分部分项码 + /// + public string ProEngineeringNum { get; set; } + } + + #endregion + + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/CQMS/WBS/Control/DivisionSubProjects.aspx.designer.cs b/SGGL/FineUIPro.Web/CQMS/WBS/Control/DivisionSubProjects.aspx.designer.cs new file mode 100644 index 00000000..5695cd7e --- /dev/null +++ b/SGGL/FineUIPro.Web/CQMS/WBS/Control/DivisionSubProjects.aspx.designer.cs @@ -0,0 +1,179 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.CQMS.WBS.Control +{ + + + public partial class DivisionSubProjects + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// sEngineeringName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox sEngineeringName; + + /// + /// btnSearch 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSearch; + + /// + /// fileData 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.FileUpload fileData; + + /// + /// btnImport 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnImport; + + /// + /// btnDownLoad 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnDownLoad; + + /// + /// btnAdd 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnAdd; + + /// + /// btnParentAdd 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnParentAdd; + + /// + /// btnEdit 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnEdit; + + /// + /// btnDelete 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnDelete; + + /// + /// Window1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window Window1; + + /// + /// Menu1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Menu Menu1; + + /// + /// btnMenuModify 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuModify; + + /// + /// btnMenuParentAdd 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuParentAdd; + } +} diff --git a/SGGL/FineUIPro.Web/CQMS/WBS/Control/DivisionSubProjectsEdit.aspx b/SGGL/FineUIPro.Web/CQMS/WBS/Control/DivisionSubProjectsEdit.aspx new file mode 100644 index 00000000..928029f9 --- /dev/null +++ b/SGGL/FineUIPro.Web/CQMS/WBS/Control/DivisionSubProjectsEdit.aspx @@ -0,0 +1,16 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DivisionSubProjectsEdit.aspx.cs" Inherits="FineUIPro.Web.CQMS.WBS.Control.DivisionSubProjectsEdit" %> + + + + + + + + + +
+
+
+
+ + diff --git a/SGGL/FineUIPro.Web/CQMS/WBS/Control/DivisionSubProjectsEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/WBS/Control/DivisionSubProjectsEdit.aspx.cs new file mode 100644 index 00000000..d9ad115a --- /dev/null +++ b/SGGL/FineUIPro.Web/CQMS/WBS/Control/DivisionSubProjectsEdit.aspx.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.CQMS.WBS.Control +{ + public partial class DivisionSubProjectsEdit : System.Web.UI.Page + { + protected void Page_Load(object sender, EventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/CQMS/WBS/Control/DivisionSubProjectsEdit.aspx.designer.cs b/SGGL/FineUIPro.Web/CQMS/WBS/Control/DivisionSubProjectsEdit.aspx.designer.cs new file mode 100644 index 00000000..942546cb --- /dev/null +++ b/SGGL/FineUIPro.Web/CQMS/WBS/Control/DivisionSubProjectsEdit.aspx.designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// 此代码是由工具生成的。 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.CQMS.WBS.Control +{ + + + public partial class DivisionSubProjectsEdit + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + } +} From fe5af01aa6d2d89eb9501660135e089debabeeb8 Mon Sep 17 00:00:00 2001 From: wq <945983254@qq.com> Date: Wed, 22 May 2024 17:55:53 +0800 Subject: [PATCH 6/6] 1 --- DataBase/版本日志/SGGLDB_WH_2024-05-22-wq.sql | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 DataBase/版本日志/SGGLDB_WH_2024-05-22-wq.sql diff --git a/DataBase/版本日志/SGGLDB_WH_2024-05-22-wq.sql b/DataBase/版本日志/SGGLDB_WH_2024-05-22-wq.sql new file mode 100644 index 00000000..5cff6ace --- /dev/null +++ b/DataBase/版本日志/SGGLDB_WH_2024-05-22-wq.sql @@ -0,0 +1,31 @@ +delete Sys_Menu where MenuId='17E206A1-E06B-40C0-8DCB-E3AAA2E3B339' +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('17E206A1-E06B-40C0-8DCB-E3AAA2E3B339','λֲ()',null,'CQMS/WBS/Control/DivisionSubProjects.aspx',1,'3B322232-38A1-4291-9832-CD4A01C2A975','Menu_CQMS',0,1,1) + +--==WBSλֲ̻ +if object_id(N'Division_SubProjects',N'U') is not null +drop table dbo.Division_SubProjects +CREATE TABLE dbo.Division_SubProjects( + DivisionId varchar(50) NOT NULL,-- + ProjectId varchar(50) NULL,--Ŀ + ParentId varchar (50) NULL,--ϼ + DivisionLevel int NULL,-- + EngineeringCode varchar(50) NULL,--λ̱ + EngineeringName varchar(50) NULL,--λ + SubEngineeringCode varchar(50) NULL,--ӵλ̱ + SubEngineeringName varchar(50) NULL,--ӵλ + BranchEngineeringCode varchar(50) NULL,--ֲ̱ + BranchEngineeringName varchar(50) NULL,--ֲ + SubBranchEngineeringName varchar(50) NULL,--ӷֲ + ProEngineeringCode varchar(50) NULL,--̱ + ProEngineeringName varchar(50) NULL,-- + ProEngineeringNum varchar(50) NULL,--ֲ + Remark nvarchar(150) NULL,--ע + AddUser varchar(50) NULL,-- + OperateTime datetime NULL,-- + Sort int NULL,-- + CONSTRAINT [PK_Division_SubProjects] PRIMARY KEY CLUSTERED +( + [DivisionId] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY] +) ON [PRIMARY] +GO \ No newline at end of file