From bee1bbd93526c987aface66e085f3afee428383f Mon Sep 17 00:00:00 2001 From: panhf <754998852@qq.com> Date: Tue, 26 Mar 2024 15:33:54 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=96=BD=E5=B7=A5=E6=9C=88=E6=8A=A5?= =?UTF-8?q?=E6=96=B0=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReportEdit.aspx.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReportEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReportEdit.aspx.cs index 29e05755..11d71d9a 100644 --- a/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReportEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReportEdit.aspx.cs @@ -74,6 +74,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew BLL.UnitService.InitUnitDownListByText(this.drpUnitIdGrid9, this.CurrUser.LoginProjectId, true); this.EnableViewState = true; this.lblProjectName.Text = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId).ProjectName; + BLL.UnitService.InitUnitNameByProjectIdUnitTypeDropDownList(this.drpUnitId, this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2, false); this.ReportId = Request.Params["reportId"]; if (!string.IsNullOrEmpty(Request.Params["view"])) { From 4064fac52ded6e59820c8c7a5680fb45e2b6f025 Mon Sep 17 00:00:00 2001 From: panhf <754998852@qq.com> Date: Tue, 26 Mar 2024 17:43:35 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=B4=A8=E9=87=8F?= =?UTF-8?q?=E6=9C=88=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CQMS/ManageReportNew/MonthReport.aspx.cs | 338 +++++++++++++++++- .../CQMS/ManageReportNew/MonthReportEdit.aspx | 26 +- .../ManageReportNew/MonthReportEdit.aspx.cs | 240 ++++++------- .../MonthReportEdit.aspx.designer.cs | 27 +- .../File/Word/CQMS/项目质量月报.doc | Bin 205032 -> 205115 bytes 5 files changed, 478 insertions(+), 153 deletions(-) diff --git a/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReport.aspx.cs b/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReport.aspx.cs index e592408b..151d173a 100644 --- a/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReport.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReport.aspx.cs @@ -154,12 +154,31 @@ namespace FineUIPro.Web.CQMS.ManageReportNew * @param doc Document对象 * @return */ - public static Cell CreateCell(String value, Document doc, double cellWidth) + public static Cell CreateCell(String value, Document doc, double cellWidth,string cellMerge="") { Cell cell = new Cell(doc); Paragraph p = new Paragraph(doc); + if (!string.IsNullOrEmpty(cellMerge)) + { + if (cellMerge == "0") + { + cell.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.First;//竖直方向合并的第一个单元格 + } + else { + cell.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.Previous;//竖直方向合并的第一个单元格 + } + + } + else { + cell.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None; + } + p.AppendChild(new Run(doc, value)); + cell.CellFormat.Width = cellWidth; + + cell.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center; + cell.AppendChild(p); return cell; } @@ -322,6 +341,30 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { bkmark.Text = txtReportList.FirstOrDefault(x => x.ContentType == "2").ContentText; } + + bkmark = doc.Range.Bookmarks["Content8"]; + if (bkmark != null) + { + bkmark.Text = txtReportList.FirstOrDefault(x => x.ContentType == "8").ContentText; + } + + bkmark = doc.Range.Bookmarks["Content20"]; + if (bkmark != null) + { + bkmark.Text = txtReportList.FirstOrDefault(x => x.ContentType == "20").ContentText; + } + + bkmark = doc.Range.Bookmarks["Content21"]; + if (bkmark != null) + { + bkmark.Text = txtReportList.FirstOrDefault(x => x.ContentType == "21").ContentText; + } + + bkmark = doc.Range.Bookmarks["Content22"]; + if (bkmark != null) + { + bkmark.Text = txtReportList.FirstOrDefault(x => x.ContentType == "22").ContentText; + } #endregion var ContuructionAllList = db.Report_Construction_Plan.Where(x => x.ReportId == Id).OrderBy(x=>x.UnitOrMajor).ToList(); @@ -610,7 +653,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew } } int i = 1; - var cNProfessionals = from x in Funs.DB.Base_CNProfessional orderby x.SortIndex select x; + var cNProfessionals = from x in Funs.DB.Base_CNProfessional where x.CNProfessionalId != BLL.Const.CNProfessionalConstructId orderby x.SortIndex select x; foreach (var item in cNProfessionals) { //专业下所有集合 @@ -889,9 +932,296 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } - #endregion + #endregion - doc.Save(newUrl); + #region 7.3无损检测管理情况 + var NondestructiveTestlist = new List(); + //加载所有施工分包单位 + units = from x in Funs.DB.Project_ProjectUnit + join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId + where x.ProjectId == this.CurrUser.LoginProjectId && (x.UnitType == BLL.Const.ProjectUnitType_2) + orderby y.UnitCode + select new { x.UnitId, y.UnitName }; + + int? totalNum0 = 0, totalNum1 = 0;//拍片数量合计 + + + foreach (var item in units) + { + int? num0 = 0, num1 = 0;//拍片数量小计 + + var query = from c in db.ProcessControl_NondestructiveTest_New + + join u in db.Base_Unit on c.UnitId equals u.UnitId + + + + where c.ProjectId == this.CurrUser.LoginProjectId && c.UnitId == item.UnitId + && c.CreateDate >= Convert.ToDateTime(startDate) && c.CreateDate <= Convert.ToDateTime(endDate) + + orderby c.CreateDate descending + + select new + + { + c.CreateDate, + c.ProjectId, + u.UnitId, + u.UnitName, + c.ProfessionalName, + c.MonthQuantity, + c.TotalQuantity, + c.MonthRate, + c.TotalRate + }; + if (query.ToList().Count > 0) + { + //加载工艺管道 + var gygdModel = query.FirstOrDefault(x => x.ProfessionalName == "工艺管道"); + var model = new Model.ProcessControl_NondestructiveTest_New(); + model.Id = Guid.NewGuid().ToString(); + model.CreateMan = item.UnitName;//用作存储施工单位名称 + model.ProfessionalName = "工艺管道"; + + if (gygdModel != null) + { + model.MonthQuantity = gygdModel.MonthQuantity; + model.TotalQuantity = gygdModel.TotalQuantity; + model.MonthRate = gygdModel.MonthRate + "%"; + model.TotalRate = gygdModel.TotalRate + "%"; + #region 小计和合计 + //小计 + num0 += gygdModel.MonthQuantity; + num1 += gygdModel.TotalQuantity; + + //合计 + totalNum0 += gygdModel.MonthQuantity; + totalNum1 += gygdModel.TotalQuantity; + + #endregion + NondestructiveTestlist.Add(model); + } + else + { + model.MonthQuantity = 0; + model.TotalQuantity = 0; + model.MonthRate = "0%"; + model.TotalRate = "0%"; + NondestructiveTestlist.Add(model); + } + + + + + //地管 + gygdModel = query.FirstOrDefault(x => x.ProfessionalName == "地管"); + model = new Model.ProcessControl_NondestructiveTest_New(); + model.Id = Guid.NewGuid().ToString(); + model.CreateMan = item.UnitName;//用作存储施工单位名称 + model.ProfessionalName = "地管"; + + if (gygdModel != null) + { + model.MonthQuantity = gygdModel.MonthQuantity; + model.TotalQuantity = gygdModel.TotalQuantity; + model.MonthRate = gygdModel.MonthRate + "%"; + model.TotalRate = gygdModel.TotalRate + "%"; + #region 小计和合计 + //小计 + num0 += gygdModel.MonthQuantity; + num1 += gygdModel.TotalQuantity; + + //合计 + totalNum0 += gygdModel.MonthQuantity; + totalNum1 += gygdModel.TotalQuantity; + + #endregion + NondestructiveTestlist.Add(model); + } + else + { + model.MonthQuantity = 0; + model.TotalQuantity = 0; + model.MonthRate = "0%"; + model.TotalRate = "0%"; + NondestructiveTestlist.Add(model); + } + + + //非标 + gygdModel = query.FirstOrDefault(x => x.ProfessionalName == "非标"); + model = new Model.ProcessControl_NondestructiveTest_New(); + model.Id = Guid.NewGuid().ToString(); + model.CreateMan = item.UnitName;//用作存储施工单位名称 + model.ProfessionalName = "非标"; + + if (gygdModel != null) + { + model.MonthQuantity = gygdModel.MonthQuantity; + model.TotalQuantity = gygdModel.TotalQuantity; + model.MonthRate = gygdModel.MonthRate + "%"; + model.TotalRate = gygdModel.TotalRate + "%"; + #region 小计和合计 + //小计 + num0 += gygdModel.MonthQuantity; + num1 += gygdModel.TotalQuantity; + + //合计 + totalNum0 += gygdModel.MonthQuantity; + totalNum1 += gygdModel.TotalQuantity; + + #endregion + NondestructiveTestlist.Add(model); + } + else + { + model.MonthQuantity = 0; + model.TotalQuantity = 0; + model.MonthRate = "0%"; + model.TotalRate = "0%"; + NondestructiveTestlist.Add(model); + } + //小计 + model = new Model.ProcessControl_NondestructiveTest_New(); + model.Id = Guid.NewGuid().ToString(); + model.CreateMan = item.UnitName;//用作存储施工单位名称 + model.ProfessionalName = "小计"; + model.MonthQuantity = num0; + model.TotalQuantity = num1; + model.MonthRate = ""; + model.TotalRate = ""; + NondestructiveTestlist.Add(model); + } + } + if (NondestructiveTestlist.Count>0) + { + isYm = true; + whileIndex += 1; + table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); + //跳过页眉的表头 + while (isYm) + { + if (table.Range.Text.Substring(0, 2) != "序号") + { + whileIndex += 1; + table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); + } + else + { + isYm = false; + } + } + numberIndex = 1; + //需要插入的table + var Unitname = ""; + foreach (var item in NondestructiveTestlist) + { + + //创建行 + Row row = new Row(doc); + row.Cells.Add(CreateCell((numberIndex).ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width)); + + //如果是第一列,或者 + if (numberIndex==1 || Unitname!= item.CreateMan) + { + row.Cells.Add(CreateCell(item.CreateMan, doc, table.Rows[0].Cells[1].CellFormat.Width,"0")); + Unitname = item.CreateMan; + } + else { + row.Cells.Add(CreateCell(item.CreateMan, doc, table.Rows[0].Cells[1].CellFormat.Width, "1")); + Unitname = item.CreateMan; + } + + + + row.Cells.Add(CreateCell(item.ProfessionalName.ToString(), doc, table.Rows[0].Cells[2].CellFormat.Width)); + row.Cells.Add(CreateCell(item.MonthQuantity.ToString(), doc, table.Rows[0].Cells[3].CellFormat.Width)); + row.Cells.Add(CreateCell(item.TotalQuantity.ToString(), doc, table.Rows[0].Cells[4].CellFormat.Width)); + row.Cells.Add(CreateCell(item.MonthRate.ToString(), doc, table.Rows[0].Cells[5].CellFormat.Width)); + row.Cells.Add(CreateCell(item.TotalRate.ToString(), doc, table.Rows[0].Cells[6].CellFormat.Width)); + + table.Rows.Insert(numberIndex, row); + numberIndex += 1; + } + //自动设置表格样式 + table.AutoFit(AutoFitBehavior.FixedColumnWidths); + //创建合计 + //创建行 + Row rowhj = new Row(doc); + rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[0].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("合计", doc, table.Rows[0].Cells[1].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[2].CellFormat.Width)); + rowhj.Cells.Add(CreateCell(totalNum0.ToString(), doc, table.Rows[0].Cells[3].CellFormat.Width)); + rowhj.Cells.Add(CreateCell(totalNum1.ToString(), doc, table.Rows[0].Cells[4].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[5].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[6].CellFormat.Width)); + + table.Rows.Insert(numberIndex, rowhj); + + //自动设置表格样式 + table.AutoFit(AutoFitBehavior.FixedColumnWidths); + } + + #endregion + + #region 8.设备材料报验管理情况 + var sbclbyList = ContuructionAllList.Where(x => x.ReType == "6").ToList(); + if (pqrList.Count > 0) + { + isYm = true; + whileIndex += 1; + table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); + //跳过页眉的表头 + while (isYm) + { + //获取到第一列是序号的列 + if (table.Range.Text.Substring(0, 2) != "序号") + { + whileIndex += 1; + table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); + } + else + { + isYm = false; + } + } + numberIndex = 1; + int? num1 = 0, num2 = 0; + foreach (var item in sbclbyList) + { + //创建行 + Row row = new Row(doc); + row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width)); + row.Cells.Add(CreateCell(item.UnitOrMajor, doc, table.FirstRow.Cells[1].CellFormat.Width)); + 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)); + row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[5].CellFormat.Width)); + table.Rows.Insert(numberIndex, row); + num1 += item.Quantity1; + num2 += item.Quantity2; + numberIndex += 1; + } + //自动设置表格样式 + table.AutoFit(AutoFitBehavior.FixedColumnWidths); + //创建合计 + //创建行 + Row rowhj = new Row(doc); + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); + rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[4].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[5].CellFormat.Width)); + table.Rows.Insert(numberIndex, rowhj); + + //自动设置表格样式 + table.AutoFit(AutoFitBehavior.FixedColumnWidths); + } + + #endregion + + doc.Save(newUrl); string fileName = Path.GetFileName(newUrl); FileInfo info = new FileInfo(newUrl); long fileSize = info.Length; diff --git a/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReportEdit.aspx b/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReportEdit.aspx index 3e1ecc6f..4ce9ebeb 100644 --- a/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReportEdit.aspx +++ b/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReportEdit.aspx @@ -837,20 +837,13 @@ - - - - - - - - + - + + + + + + + + + + + + + <%--16.质量专项检查情况--%> diff --git a/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReportEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReportEdit.aspx.cs index 11d71d9a..15fa0ec5 100644 --- a/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReportEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReportEdit.aspx.cs @@ -187,11 +187,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew txtAre21.Text = txtReportList.FirstOrDefault(x => x.ContentType == "21").ContentText; txtAre22.Text = txtReportList.FirstOrDefault(x => x.ContentType == "22").ContentText; txtAre8.Text = txtReportList.FirstOrDefault(x => x.ContentType == "8").ContentText; - if (txtAre8.Text != "本月报验的主要材料钢筋、水泥、预应力xxx等,其中现场抽检xx批,合格xx批") - { - Form19.Hidden = false; - Toolbar4.Hidden = true; - } + #endregion //加载所有grid @@ -781,7 +777,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew } } int i = 1; - var cNProfessionals = from x in Funs.DB.Base_CNProfessional orderby x.SortIndex select x; + var cNProfessionals = from x in Funs.DB.Base_CNProfessional where x.CNProfessionalId != BLL.Const.CNProfessionalConstructId orderby x.SortIndex select x; foreach (var item in cNProfessionals) { //专业下所有集合 @@ -1082,9 +1078,9 @@ namespace FineUIPro.Web.CQMS.ManageReportNew var query = from c in db.ProcessControl_NondestructiveTest_New - join u in db.Base_Unit on c.UnitId equals u.UnitId into unitJoin + join u in db.Base_Unit on c.UnitId equals u.UnitId - from u in unitJoin.DefaultIfEmpty() + where c.ProjectId == this.CurrUser.LoginProjectId && c.UnitId == item.UnitId && c.CreateDate >= Convert.ToDateTime(startDate) && c.CreateDate <= Convert.ToDateTime(endDate) @@ -1104,122 +1100,124 @@ namespace FineUIPro.Web.CQMS.ManageReportNew c.MonthRate, c.TotalRate }; - - //加载工艺管道 - var gygdModel = query.FirstOrDefault(x => x.ProfessionalName == "工艺管道"); - var model = new Model.ProcessControl_NondestructiveTest_New(); - model.Id = Guid.NewGuid().ToString(); - model.CreateMan = item.UnitName;//用作存储施工单位名称 - model.ProfessionalName = "工艺管道"; - - if (gygdModel != null) + if (query.ToList().Count>0) { - model.MonthQuantity = gygdModel.MonthQuantity; - model.TotalQuantity = gygdModel.TotalQuantity; - model.MonthRate = gygdModel.MonthRate + "%"; - model.TotalRate = gygdModel.TotalRate + "%"; - #region 小计和合计 + //加载工艺管道 + var gygdModel = query.FirstOrDefault(x => x.ProfessionalName == "工艺管道"); + var model = new Model.ProcessControl_NondestructiveTest_New(); + model.Id = Guid.NewGuid().ToString(); + model.CreateMan = item.UnitName;//用作存储施工单位名称 + model.ProfessionalName = "工艺管道"; + + if (gygdModel != null) + { + model.MonthQuantity = gygdModel.MonthQuantity; + model.TotalQuantity = gygdModel.TotalQuantity; + model.MonthRate = gygdModel.MonthRate + "%"; + model.TotalRate = gygdModel.TotalRate + "%"; + #region 小计和合计 + //小计 + num0 += gygdModel.MonthQuantity; + num1 += gygdModel.TotalQuantity; + + //合计 + totalNum0 += gygdModel.MonthQuantity; + totalNum1 += gygdModel.TotalQuantity; + + #endregion + list.Add(model); + } + else + { + model.MonthQuantity = 0; + model.TotalQuantity = 0; + model.MonthRate = "0%"; + model.TotalRate = "0%"; + list.Add(model); + } + + + + + //地管 + gygdModel = query.FirstOrDefault(x => x.ProfessionalName == "地管"); + model = new Model.ProcessControl_NondestructiveTest_New(); + model.Id = Guid.NewGuid().ToString(); + model.CreateMan = item.UnitName;//用作存储施工单位名称 + model.ProfessionalName = "地管"; + + if (gygdModel != null) + { + model.MonthQuantity = gygdModel.MonthQuantity; + model.TotalQuantity = gygdModel.TotalQuantity; + model.MonthRate = gygdModel.MonthRate + "%"; + model.TotalRate = gygdModel.TotalRate + "%"; + #region 小计和合计 + //小计 + num0 += gygdModel.MonthQuantity; + num1 += gygdModel.TotalQuantity; + + //合计 + totalNum0 += gygdModel.MonthQuantity; + totalNum1 += gygdModel.TotalQuantity; + + #endregion + list.Add(model); + } + else + { + model.MonthQuantity = 0; + model.TotalQuantity = 0; + model.MonthRate = "0%"; + model.TotalRate = "0%"; + list.Add(model); + } + + + //非标 + gygdModel = query.FirstOrDefault(x => x.ProfessionalName == "非标"); + model = new Model.ProcessControl_NondestructiveTest_New(); + model.Id = Guid.NewGuid().ToString(); + model.CreateMan = item.UnitName;//用作存储施工单位名称 + model.ProfessionalName = "非标"; + + if (gygdModel != null) + { + model.MonthQuantity = gygdModel.MonthQuantity; + model.TotalQuantity = gygdModel.TotalQuantity; + model.MonthRate = gygdModel.MonthRate + "%"; + model.TotalRate = gygdModel.TotalRate + "%"; + #region 小计和合计 + //小计 + num0 += gygdModel.MonthQuantity; + num1 += gygdModel.TotalQuantity; + + //合计 + totalNum0 += gygdModel.MonthQuantity; + totalNum1 += gygdModel.TotalQuantity; + + #endregion + list.Add(model); + } + else + { + model.MonthQuantity = 0; + model.TotalQuantity = 0; + model.MonthRate = "0%"; + model.TotalRate = "0%"; + list.Add(model); + } //小计 - num0 += gygdModel.MonthQuantity; - num1 += gygdModel.TotalQuantity; - - //合计 - totalNum0 += gygdModel.MonthQuantity; - totalNum1 += gygdModel.TotalQuantity; - - #endregion + model = new Model.ProcessControl_NondestructiveTest_New(); + model.Id = Guid.NewGuid().ToString(); + model.CreateMan = item.UnitName;//用作存储施工单位名称 + model.ProfessionalName = "小计"; + model.MonthQuantity = num0; + model.TotalQuantity = num1; + model.MonthRate = ""; + model.TotalRate = ""; list.Add(model); - } - else - { - model.MonthQuantity = 0; - model.TotalQuantity = 0; - model.MonthRate = "0%"; - model.TotalRate = "0%"; - list.Add(model); - } - - - - - //地管 - gygdModel = query.FirstOrDefault(x => x.ProfessionalName == "地管"); - model = new Model.ProcessControl_NondestructiveTest_New(); - model.Id = Guid.NewGuid().ToString(); - model.CreateMan = item.UnitName;//用作存储施工单位名称 - model.ProfessionalName = "地管"; - - if (gygdModel != null) - { - model.MonthQuantity = gygdModel.MonthQuantity; - model.TotalQuantity = gygdModel.TotalQuantity; - model.MonthRate = gygdModel.MonthRate + "%"; - model.TotalRate = gygdModel.TotalRate + "%"; - #region 小计和合计 - //小计 - num0 += gygdModel.MonthQuantity; - num1 += gygdModel.TotalQuantity; - - //合计 - totalNum0 += gygdModel.MonthQuantity; - totalNum1 += gygdModel.TotalQuantity; - - #endregion - list.Add(model); - } - else - { - model.MonthQuantity = 0; - model.TotalQuantity = 0; - model.MonthRate = "0%"; - model.TotalRate = "0%"; - list.Add(model); - } - - - //非标 - gygdModel = query.FirstOrDefault(x => x.ProfessionalName == "非标"); - model = new Model.ProcessControl_NondestructiveTest_New(); - model.Id = Guid.NewGuid().ToString(); - model.CreateMan = item.UnitName;//用作存储施工单位名称 - model.ProfessionalName = "非标"; - - if (gygdModel != null) - { - model.MonthQuantity = gygdModel.MonthQuantity; - model.TotalQuantity = gygdModel.TotalQuantity; - model.MonthRate = gygdModel.MonthRate + "%"; - model.TotalRate = gygdModel.TotalRate + "%"; - #region 小计和合计 - //小计 - num0 += gygdModel.MonthQuantity; - num1 += gygdModel.TotalQuantity; - - //合计 - totalNum0 += gygdModel.MonthQuantity; - totalNum1 += gygdModel.TotalQuantity; - - #endregion - list.Add(model); - } - else - { - model.MonthQuantity = 0; - model.TotalQuantity = 0; - model.MonthRate = "0%"; - model.TotalRate = "0%"; - list.Add(model); - } - //小计 - model = new Model.ProcessControl_NondestructiveTest_New(); - model.Id = Guid.NewGuid().ToString(); - model.CreateMan = item.UnitName;//用作存储施工单位名称 - model.ProfessionalName = "小计"; - model.MonthQuantity = num0; - model.TotalQuantity = num1; - model.MonthRate = ""; - model.TotalRate = ""; - list.Add(model); + } } Grid10.DataSource = list; diff --git a/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReportEdit.aspx.designer.cs b/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReportEdit.aspx.designer.cs index 2163e253..1eac715e 100644 --- a/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReportEdit.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReportEdit.aspx.designer.cs @@ -752,24 +752,6 @@ namespace FineUIPro.Web.CQMS.ManageReportNew /// protected global::FineUIPro.TextBox TextBox6; - /// - /// Toolbar4 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.Toolbar Toolbar4; - - /// - /// Button5 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.Button Button5; - /// /// Form19 控件。 /// @@ -833,6 +815,15 @@ namespace FineUIPro.Web.CQMS.ManageReportNew /// protected global::FineUIPro.TextBox TextBox11; + /// + /// Form26 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form Form26; + /// /// Panel22 控件。 /// diff --git a/SGGL/FineUIPro.Web/File/Word/CQMS/项目质量月报.doc b/SGGL/FineUIPro.Web/File/Word/CQMS/项目质量月报.doc index 59f86f369c147d3a89611b42b29971cde24b0bff..ca3189860ebc8b050631bcd1ab8247456006f935 100644 GIT binary patch delta 30598 zcmV)vK$XAf!3?{?43ISi=$B=sb&)zBf9o(1yd%B;5apiQahg)l)~FabA*j^wdPJ79 zZLF8rmTeII_qY_=aDBI(8SQBH18zQsK6^(Wv^9&ooX|W&qin0qZjrw<55+vsLX@VJ zy*0SV_ZadU{^tT#-a7PAW5|+)35&do(OnY~REL8MlO&s@Y^@(;OwjL$-EOtQe>t#g#bcoXfIT0Z2;H24e zu@UzI$Pa{-++pBzAjbkW*0+JPvbq9ttU+|rOBK`hIIHSuYCaS2s7>mxDj>%y8G5<% z(sh9+ixGmxM%g!dKwhR~Cje_De|r>Z5WbatKp;&oJYgBJu$33S&#xO17ba(y@6aWAK2mpsp2I4^IsXbAX z+W{YcK}*9h7>4hH|DojGCCz4ap{t8I$>Bqh2lrsCD)j_K1A+q3qLfN6Cg?Id4G&OY9oLfQrG^PwgGGnw z?oJ{qCQ1WSQ&wP{0vmXewoFtLv~;dw7+bM_go4|FS7=|Hm!{y(Z_NT%T-@>nU`j}g z3vgU=$8ik|tDcBjq!c}}x-)qLkOD&v1!!k+G>GuG)`2PPpAAiAOIawlu6(A}?lxPB zO|e%$Sk((xtJPpNY;1V{5xzP&XR_ck&{loPt(Hl-Ouv18*-!^XJTytYz1wva}DQ;^K4Tlh{a=> z?;^p9mR*8`SdHb;kzn5&?g^!n+sV)wkVKM3H=7(LM(`Ad{lYXLGN$XTL&IvF5#Zhq zqE(ww@~YfSG*Z)75Y-#Hsp)@dNVXbwrJ(MT|RVSJk%f`pnB{igI_ zBJOYB2Ma9$Z29f3C!~riZrMJ#h<9Mgwh|K|AwmmwH=OijIadlv3u}YuM38hls7kR9 zVEagg1W%rW5#873&*A8ie9tivy{*%_(QbBzS5lQ@!%U<7f4jUs<$Us1ClG3SJ_vs7~6+lG0rrTK~n@Mozz=fHl^yRS=9gAk6+RLti z?v}1aa+)<*D0nP3f`y(mtJw!cj;YGDoCN(5Cjzmyc9sm>mp96QzB!st82@C9}$g7N-&Xo6K8V5yT;e{oD6xiRR&_+o&-CXxAq5MiI+` zQ!8J)1&mZFHUb1MTnd&&VC%r=ZGIyXx^0*bSm0{?YBo7RHdtgVOG@KUqF-4W|itBlJL^)1O#CKnjyO^SPtz1co@iSnCsSLJeXK><^)zIr^`_`I+R?zHY5r+DQIgqN zg$n^^da^Y(0^F>+GOw-p=d{i>y)&%~{IE9H6D~4QCV8KUgMmpf30ZmVE7G!el48S= z6!3ADyU~BOoT4F{QJ6n@j_nd^NMNlqO#uxpE~@F#1w5Z}pP|LUXIMUqqm(3q#kkrP z)P&Y&5!h!p7!wEFuw7}KBy&LavLxnJva`GGo8q)#VB5ORfKU{FjfDm~gsu?MGW0{% z=Vaih=2f$QL7H3qtu1jEQUdZm?08~ADj5LpTd#kzmf|RyhTFVR97WjMRtSYoM67JR zZ8!^?epAjR>a*+`Y?p?>n7j`xxZW9+gbfF+o*4U*NjQq$>0l6}wnBCzfg+Op7Trg( zQ(G?khh~`QM2nb_G9r>>{8dQcfG{i@5>QX(pF%B$i*7keB*dr|mH;FhtB6>>f-pLu=tIj9_s@ zkCrlkLDAgcBJfuXK~xYEP+!VvM!K=IUABL9Ku)BZOk2`W9pVZ*8-b2?P=(o7py;Dt z4FgC~bqS%^_vxq;*V+oqL;{LdsX>yI0GOc+kdT4W87;+{+EuCpB@4r|=p7_Ea5~(TxwI^o@30yi%n{P(BU7~58jg7WV)n?}cP9p{6mX`se!-;>P z^G09;oP%h8a1o>)bZ=7Y2qfSF3;K+*BtK(pQ5qF)4CK{;4F5!50huo@dECs94d z{6a@}kbbJ)Mj&23Hkb!0ji7f$GV0eJVS$}>-U?=Jwi*FuhEAdui!O6U7c-ktnnm}c z<(a4sD}DP+!xGe`r>#loz{iTW?=ycFf?7Q>s3%T}o$RnJ`&Pdk6~!R^Y*k@*)5Xl* zbfs?-ZmpacFwytgJ%r!Uq~=i~At#|{7Oe6pf73{CXwo>tv@*3!_!*{QA?hN_Zf6#R zQzgkS?~^fa;pH?5w99G@5>dslGoKbUT7XxJ+->Wj*feAU1;9{OSj?d#xDS82$-d9F z?$p!T+9{bkfGsit`b+m(7fK~KEmMu(rPPQ6zOpk5n~#{hoIi!;nwG_ZbjtQim3yMZ!KY ztQ03Eyvt?6c6+1-f6cQEJub|sP=BWR{y0k^S&1zfM8E2v?M3QZ)a39(^&Xo|u6cXGGV zYF&{%JpnG*Ol|c7rLK01g3^OysCu*c(0jR~A&QKEaAu`8Im){2c0+#)BN@w~C3j=- zz+o(>47wVB-=fE*cCP9z(nw~Rn66a@l{mC_aVE@3k1WH(A|YpF_8VMw5ItDb5aXK4 zSc|2x)+XY|_O;1tg8vd-MMJ}xCVaLIKr(;~v%3NAt&@2l7^(mb%zo<&-XDmQe4i2c z+h{dioS2{{%r7C9n3;cUTRWV7iQI!dr_d5u-VD}QAg30ULPDO{JXh+LsXsD{7zkiF ze{8)?WV$rZM0y*vp)n%&bHxZO#svZ%Kf)|XT8;rBGLMonmbRY_hyNf^lqi4SHH~3c zh%bSVQGLzG95v1+LBCowqOdPeVq@QQfrOToCEt|hRg`NclVpD|fEJJMmu;mE%e2@^ z=Uio%1Z4p;w%M>q8j{#HY8n|d5O~PgV2Z(b5uXWmbRvzG3neGh^ei~J8|>)qWT-td z*c@8AuD6a8Y~t~RDmKN z%ShuH0yZG5H@)TOC^`f-VJ9sxi_-K<><}8IVR6}6LaeutKFWDoqQIT@Hl}?f z#a?EQB4LeMM`n^6Y#+m9C8BISv>Nh#8vO0SG+$zB2#0^mX@)sWuP4*w{95DaiCvYz z5W|Bmn!LcTyU~zw;1!B@Xd|E&q2A2$PT(J?N3idMr9skFb_wTVPXtc%0pA+5rDYLP zH_##8SmF~+zMI9^iBbnIsOHV+!9fj$VHSYj5wJ2mIpxtCKzRG6J@|vk>h$20;ykxZ zKBhH?u=#&XNTznSI#=ShYmv&TV%Sw}zBAD!vXmBGK>`<*Z zd$fPFnvlC8A<3iHP|SpXCf5M>@3LXP$ahwdUWuhji4B%eRtYs~)N$BzI20iCRtXvQ zTJJ_960M%5l&3Tuwn<F%8;~U2XVRG4HPE* zWo!<10Q$IeG6y^45RK(1v4Y?dH7qDp8wuqrs|v|XKu@daEC)0vW~wUtPqgsw$4Z$x9jkE(82-?>m;~PpI&FWGU?R~V z)+BkutTLUrf@B^owlRPg0~%n@p@A3t1NNMZhhAAM8h~U))q(9S7@|73d1TZajYR70 znym*}Y8Ab7jwfhmwk0SofaW@C@&w>??8{+kU<8-xoqm*=~y z%ez1P{^sS);r{Jk&QJf^Pq%;f&u(6Rf4F}2d_CN}K3^T4eZgOpS-5%m`uyE;b^9cL zeSC8|AAc_S>iz2{;b)&c3hr(W*Vp^`aPcIlAAi5Rx_g(8Zys)Y{l($@?Wg-byw=Uj zv;KN{eDkkA-Rt6bdw)Ft@qBv!?(wc4&WCrO-(K?bPmk*!={av+UfqA*|M}|X>G!+$ zufKY_>h^H{;b)@vx0nC+{kh!m#i!}{@bdoc@#a|O=g)`RZ=Zd5oTKCIXMg?bIsbJ$ z+}+Q2SBF>6e|-Dd`enKL!^?~7^H&$;vM&zr-d#Oh_4?cT)${ACZ{Ob6<+6MJ>+*2^ z?%_XPf7^VNH4ifWtH^&I{^M{_UY5W9_>b}jkN@PaKK|p=Z|&1>?Wfb{?k9p?{7}m*QXE1%RhaR|K_L1Nw_?HdAk4n_Tu{e z<&gz)dAhj!{PwH+!~NaE9NoP=ygRZI4)3q;S&*lf4?pmkAAWy$_U7vP`r>qbI=_1U zKlX?JJ%9M^)${x3&+hKer|*vCpMUuM_b-1F%l z*7l2!cYC~;Mf4Tn@s&QkWBKKHf6s!r`@{bQP)h>@ms%YI8kd3{0}`_{R=yz%oN4p# zx?TVPV+{tA{C60C+jAS&xi9!WRr5cf@GuWkB?~v+a6+AuX|YQ&rGFiR|9C0 zumCi6qbX8)a<;9jEy<28C${A6Fx%eI_&Bt4;#l|Oe>sN$$S3~`^L^i1tI-W~gWU}f zXaHYa5rIZuRWv0GZ$+zJ(Hcp4yK3*XK7YF^#OSWa%5wY(hAF?&FGNnQ*{ z{!v$$J#XRhTyfFI1uGs^N_M(odN~iiw zs-z4YNavArJ!9`Xw;7^u$0O^&QiCwa8PnLT+rz1s2fN#wwafOskh4RKEH&TrYK>4g z=;8g<4Xv)*!>Kn`HXD{veM7S}`@UOSTd!@^8?O~>Qjj>fFP%LOKXoojCaT5!o9i{h z)Cv`Uc(<)|F0qxKOCW`xwMMZFtI^#3VDHr@;*^KYs9|M2u>MxGRDpcejF$nm7zG_{q==Rlf;*N0qZ8)~IoLpLjcY%-A z)jCW?XfP%U%bf2ZcaSG3x5RD4{E`L|gfyQ87SBYMYjUUmMq!lOS&4 zLtQJv1LPZ3^ffE$wJ_7L`cbc@6^wduxz;F`^t0;n8Yn%VcLq(_{m$azUq`tZmKj!m z%sKUi$~o<-v5Au?R&K4lt(WXoTG1<&w=^PLi&hC%nugT1%yJ#z*Ew3HuAl9x_PJb5 zruX$?)b>!sSDP-+nB@{u(K`HHF)HvPaF@k7Ng%GH>BU@DyqfE9Hk)h;;*Qwq|7d%hRc#X_|`v&Qp*BvtHC69MYr@Zbvm!&(1`8^}2)e?(e zs9Z2lZA+QpBp~M9G4ig>6TrQ3V^2vfQi~O}nzdR7!NE#^}5sU@L^>v?@`O)pxf#F;P~Fr`2eII%dFpa2sE(EXV?b^eyA)z5=*B_;ww z2^Y*n8KxCDx29D=)LbYRtxZ!;z=4w9D8g-C|9=y$51#D*_@&U0^?dRCl{0XgjdJm{ z3D+PqX<%%0j+}$FYRGthLdTI%!HL5?S>bWkjFk+T)?0(CKoKuho`5C50Lf={+z6?{6}cdK2wP$uyXhjA&wE}*(h+(g6CiS_E8 z?}UBGG>xqdT`K|8ie+%$jNi7kT`+;|F?V=P5XV203h6etXTV;*}6g=;D1X z4?NX}q2K}P;=0+e&gkF`;RhHsj0~1j%WGH8HE@h@syYP^*9?4H8hZt_4tRfanK`<^ z@k_M~{$8R|22rzrn8N=dMQeGS*i*F)qZ%Cxh@9^0c z&iJ__v*9x^D*Ov-kCY(D7*Ltw-!5|@lU^Y6qswVQQ+~Cs*;+M2@-#ncGs3n5+~z@F zPnllF?J2vgh`tw-8}GcB=Feduxs8pEUr*=t8XI^kaO**TUsuW)0?MJB7GH$Dr&;Gv ztBdIs@e#D6AUu**Zk3lE*lQs~w+DphgJFhFgv9oSToIBH7$=7h21xnD-qXJ{AHLdq z{%QN(_eA1E=r+;2qfTR817(1~qLU3fKzwTO+3!Tff=zSt$v5rCAG99bKKT5j=JoHI z_n&%9_F)o#CYPDZdUzz=5=I6mMlE5&NdpXPIs<36e2R~R$!7XVm|(I*cpD{sP1~$k zz0L;EvhqaSA=wUnWn_%SDO1$33YdC|9rW6;mMhu=S=q5}cf}trkzk8#eI@o#Eez@Db|0IIkT$}@c7jELtDKH6w zMUC@vghtwth|rFJb0)F6i3d!>p-M+0At4It|k% z9;MQMC%b2Op26^lPEp!Gid&MQy4P~Dk6H%1yVoBH6tNtf{87rLBS=@w_w-8FBOz7W zNOaqdN2j8DO^Y$n>O|=1_U&8#^n(*emjsOtU|95m-f(rop)$7*pd$t3k$a7_ObeVlrpSANyCNB8s$TQ{tbFG9q1Ys)`PBM3FsTA=;F@z z^Ypz?E|t44DZK-Az8A6H=uL`)I!D!isA=^}#u-TU(dFHFl1xvo3hPnn)Q)WJ@FWZ! zW|C@gsAoY=X+dk~nEMhJde^l$BF!C#bCh8cs%8>lk~OFgf$j|7ATk9tT+$wCkbMNN z3T5^YfHa)(TO^f2#dcT3SG%}WGDrV%LG}?;{POTboTra~lP-%Uon?U?kru*#8i0GT z;Sb#jlW+J(TggG}`IuXAwj(hao#}WZEi^!I(bF(UZ6Txl6)>9CVE{7i1*---$wD`|s z#*ccnBw3J`? zu9?uwH$m&yT^y*WPE^gf;bmgL-Zr;%^Nn63ToS=GCl#S_WX=ay#)Q=BRqkD)I z6H4y)4LS8Z2xh=#cd-?N1dVhd3ENAm`c&k`g6y$X;_tDxV!{!B=m22^$eX(WEjnfi zQN37TXXYwW-kxo8ho>=IX98{V=Jmfuq2@UXz;$_;-7P zG*!4DqzfIT?<9Kw8Y|`?J38#eToBS_Fd>x=SZf?lVPeM>1E)+`O4v2#ZUk%wFlGQ_ zmJ(nuA;dmQ36>HfXvek$+Y)}8Qm~X@DZx_0bFUNjIPC3uSW2*zU@37_QX;!Z6+tlz za&lb4krD@gUEtVMjUuKZ@5iYSPKAsn6+*j}#V;2!A!1_SGPI!JOP%^Q$o&Q?1X@lW zy!aURfrQ2F6eY-GL|X;=x6^97AZweSR=45o^12#2=i1KYFhu$<)Tm`<$` z)Y5r1=BsL=87sA$5ckr@b`U$@t(9RXMg(A8PG-|$KV$n4b`|5^lyhQF#jSjhvODjF z5_|K1DwiMW^kBLz5-b#Ocr$X7t5JECVMnH9C3=bA7B)Y=(|YvP&o94l`G;69*}JP2 z0s0B>GE=V`Cg8eOO0xC0b46!sE#=p-eFod;Vm}WC1F)#Xqs)=*v*Fuk*%VDQX9V&^ zqhfT?U_?JIf-DXizmt+|2ITI+&hzH;`>+FlTrjx{8-H)*opKizLEjdcL?x#?QkSak zLCUk#?V@;=x#uYmBIw33E$$%jC zvq!Kl%md-E2vvfAIJD0u;fO-}V%upp35RGBMwAuZZZrr24&oi6lh}k|6UL37+c)Na z8z&Q{$8pRo0PZSSCOtvC%o3R?!Gd^wj1WgmPDP?vz_5S;EEyYfl(Pi5wU}}brYuXq z0>&@l>tRONED@>CUZvF{UCg2H;fKDtglYICOl-jf##UefBTHHVY{RaM11@(!Z@@Rw zygnv~oNDhVEn6@?`zx>o1J-SKzKvafr0(3Ohj?NO#OlB8p_%2dMT7>TMU`fG}A~{Ev zSr^3f*d;}Fkt(n_X?!F}W0n+E6@c%X%wwm;&U|{?1Tk=0SW>V}(Wl6tK(4nFB5alwy;6Bg6TKA>rwkXEWYb{y zPQ-ZC4vP`)e(v75?#S~SEJj#=j6@AAa-f0(6|!fP#mKaYkvIh^*fL_vh%FCDN zSAE34>LWKt$cV#|9hv#1EXty;GPv&TwdL*wj0V_AE!c*sjrki+1_&L`>)% zDuR`)&L&nU5QSD-S3xAbcI;QHNSJDGi{<3Cjbkh4F)ad;T}pB5gxGbW{o;Q6qZ=+% zQ8=jsN{0!31oN(;O{M*a%@aMjXG1hp%dB)FNmchu!wwZTCMCj4S*o`6O1;wmH z6G|T;Y6xzw+vpS$UWqmoa|1pPrsPEH_ul}zaugvrx3m<%21v{1BG=?Q5IsWM`hf%g zy{5jS{B|~t0BZ9JLXlo-)uBT>gz6>U$W0aEt!V0izTFRjdqL`d=8kAXbz#>fp#FuQ zY{qERwPKkReuZ$>sdx@QUfiqz?7C*1L;etQv|~4c?YAM0HT0q-SZqVrO1gPbU(-#! zR@4(FiDvW75>-7)@u{zAn-zJx`ugfMq5sqArIhf+0nmMZF(*m9z77Qya0XEKa&mDl zjod+Iqy0_Tpt!w%BwdcA40p(-#kP<%Ah{{PnqgQvpu^Jpt#4ZL3oT%M-66*utfUH8 zQ47;`I9V_$a(GV0IpkEgt$fJIF3Y&@xkxt7u>lB+$~i1^6$W zTcW3>=R`LQTuZ;c@jCuz&+G*-NPby(2WJN68NZ#;Diz(ls?NWp6)JkdSWB$HJn1l1 zu1kMaEC1_%rY;5|ucy1=I+P@j!3Qv6rf|~5OWN-S?2ub-nt{N3i_I15;x*n z(ihw+0!W6)UR&$%JAHQkh}4fIiF77@k{oOu^9@3Gg{TiYsnwd~y;KJcwUdnMUC9D8{i8r+(@D&#%tW6BOc4VSk4H3=g z_QT!gs|Oxtv?3%H2PYe4t=DN8#R4fB!oS^IU0=1Xf|ipiQdE7zf@*~Zo(X@|Pb5Kc z{1s`Zl?)5N)(sHhOY>RM=I{h{sZ%6pQ#rB*Q9w(Xn$G3O>a%5SP}z(35JEqWyr8B! z*6g}}Rw>~sz~aeImk3#=ps$x}IJNK+LfFJt;s7F{WnR*^t;BY`i z>6a^s-x!Ji<6k!o>%XLrrNxKDZ#ELY*-YU3+1F3R+xje6L$7P5+}&vc*39QEriknk zXaAoIr!Jm*^Zfsn_)R78FPDsBdTB0`W{LxUQR9x)!GTD2Nf|CAXHGixTk89gJm84# z4C-@ANhmBAA3>9TjTRUD>)0|N`uFP_6=#V6MJdRq3FLeSnTXb-?_d{mnOJ(b+xp|p z_U;a(ms;;#Z{GNO>?a9VPb{>Ll+tUZj%tLn*^oM#c#v8MoMN#cG4^|WXl2SZT54f` zjy2lUYP8HGXtW4w>x9rydrx2N|L1R;PrliE^{9E{dUN-gD`=rSA1Qj`5Fu9*(e~DW z^rYYsejBSMS7suTT^Yn|R13kX2`KQ$XW8MSd;9nv&Q@w6H_xhRYE@HqYE{!`uRtTU zK6}>Mxz)UXr}ZE29(?=Z{`U{?-`$;m=B?i~cXwL1p9x=z^%cjY0qg^~oB|;k-!KR3 zD^-mUSADgxIKRmHYHIaWZd&!#{_a0OFYP`5y7~NpGt9@TiB%J;Cd!(|D{^3`JA=DY zx%nKcrm0m;bJMDtnh*cce*SdtgkyNT_5@TiJN&!subG`&h`aaxrU_)E>NZ??YtsP)< zrcOa+7ZzDTO|ODlnqCF9b8z#2e)IFk&FfECL2>Um#66-w;BcLu(&;dPajYxPWMGR8 z&NxkNSTCKLRt?p@_e1m1bJ3OCy#7}xEN?ydp>=nc3-!2AkE+6D^w{CXPAxXX`IU?8F0o2tl{9TCDLt1>W!PPsUUz9~F(G9A!;>A( zG4Z}GAMCyQMC>2KEw@vD&~lqzSYV|z#VMxgMT7Y9F%*yQJ^kch=NamyufE~(2Q--( zsEC1zVu`*V9z!pi;j-~*j^Rx$9E5O~TA$tAd-2oW(>u`H#JY)f6T405FHMPVTFPY^ zL@#E3lWGJ6BiI|KH$4$p55wJVQ106#RMNrkcMtybhvwJs+dB(?aDi*vO&<(eiP zJZ~|_k-Ul1ND~3>Fl3Fi_w)mMuiMtWKR0jvba3--``>scL5+10>!NAUMd>9dz~fqn zc-1-_>KY0x-1=#^!KGieHE0>Bv@ zTJuEvuP^pqz7)!TL==)z*X0_jmu&eEw!)eZPjgGWtzX=#YHGMgma($QQrKIYu z%i1TBHnFUOTC0?B%=k{?)1|9*cq_eDQq}|65Ow;uQL9wCZF5IWn|%S4wm0zZjuLlV4V?120qZe0 zzaSprI6>G<>Wp+MrS7V3)~IX6a%~;XDCld332&Ru&?<_rxU6_<$Dxy(mLac_3$CqM zx@liX-(1(xk>1NHL^9cVx;K8gxLJYcYjA(@9!~myOXo89q7L$tb9Q(|ovt;klZ~>r z>}o3RV{-&&1;e;p)y&JQmS$Qo+;V9-Njy^1s_<(6a>*#Bm*z5QNlt=T z9266ym%*3nCTK-84gzyg;KCe81Tit{)EK=HRA1r?9Wo*U=o%t%5Wh-dQPM+AtrUWX z%EFOzj9h;za75hTQyY3K2naQtmp zk*($AQf6@;7sn#2v9zt(C%j3IfKxIHS?@D{UN_8=ZVLO(sKZUjW^BM3S9H9hXjBZa zvB)@ruZ?T4^mrUCF|aJ8F@)MU>a_*KvW#lftIhKIM&w6BZ(O;gpN;x#arv*KT@GRg zR?sp1JrPH^Z`bUvl`ECyZRT_0HQa|6!Gk30%5^xikj{D>PG_^yn{l0; z&df=+b01DEkQfxhJ0nMBiP=L2KD8}>dD*ehVp^HcdgNVI~)Dd_n$ok!nPxJ<-7do5r3z|X>zt&HUC~X;wRQ!q zq2sW`P@{>h zJbXGxq1#ggVKKEh!R9H@M8NHT`{W;+&+j+yKXC<-flPrdh)D!XdowobQMh-Po@d5( z2QrzlHLy{cu}99>qCW264?neb{~m$8$sT6*CgY#=wxc#dvGVx!_C~n|89}9qQ5Vg$ zCU>clGu(~ym`tz_K$so#0yj@8afnS($}=jip-n_ip+`x3R!QkW+CcQ zDcBzN5kM8*)z8$hE2>9-DO0Hm5}eh8OQGwW1;j?;ICFvy9LWBZ8A zm}OM#wv#b~YK9G=HV;XQ0oPDa>Jk=UEGMhwnqi)jg}}&ClwtDwQH8erelIqtuA}?5 zv~aG>l4jR3cbs@p{fi|$o&1|RHpIHq4vCU%;pu`!SL?c*ytZ*{<-8<%+l$YW0FLilb8I~*3lIzAYoL#G}clPHDBJYp+{o_oMJEdY7zQS+`P9JQxL!yG3py zb!+>7$L}#mK+)C#d6q&y%(K(Vv#Mf2Xd5<&r9UthaG60GR@~WQnQrzhW0V;=_-%q= ztB00nPUpPaV(hYZfQ1s6T=o$K4V95u;E+jAo8v&Jj;GrFa4vUQoujUY_cuo|MTkj3 zl`8b_nPCP<1}wB-1_1A;)6^loD`o%{P=LRGz>pLr!#)Re-(s278UDdSc2f<^qVR*_odi34Hf z#F4SPDrrJwB?INv;eKF(*+>-w7QB!N$o$0o#Qa1BVG=oMI7x2wx|p|^x0tsCZw<46 z1Y;D;Tg+R`TY|TmPyWZjyI<`8^XA@v(@&baKka}2KIkxykUNI&`c*(rx`{VK zgD~U(Y|kC40e`f7-Br*4j@d-EFGFB_@2M9$^9hQRHb0V3Y;LoQo}Q zO{!rz(4Mek&A`eQGNpE=xGNjG%$F&C1XQ-6)z-_kb!^a{6Z~_8tAGJw<8oCqFT3`C zpgsN^`#&r!!p^y5xE<-n17cUhz2{#ypFe2t?zBI;;gK2Z4B4^O1I-kF=gc(l1R6j* zoHMKFnu(=i)RQhC@A2zexdK!4#sdCFm1MZ>YS8GvId0XQOaXl#Rzqs*C6^o4U~to(+m{AQK4TsgDBSc`LJoHN4!Z%;8+ zYH}~z^?BCLb#x>8K!=&T+@+32~}8s9O`W>qvk`3Rt`$U7 z(Scyk9c`SQJIZVVXXo-;u!9G0b`2F2sAjMUN4Kpe?q~~}?dI$pXXmD__SbC)PG%IJ zJKCaQ^fHFj6t}8>Mvnb+b`E1pY8C>y#$a6efXpBW3U{<|3V~AyvJNm5U&)Y(2sK$Y z=r6Y2IDOt=!C&4EHBet z_c<6{phqOy+nV?P(0ce|xJ;b_mLighlt7~`zq<@RxY3(6Z1JFcfzKJQ8)iv28-(L+ z)ZyeveJ$AG81-6)uoKfilFksIiLM0NT6tS9i99y^81HNVQE6xYN7pu!b_=WPXga$n z>uKDFQ%h2RI=K!nrM-@(({tX37rbxn{ls}FrVxq*rumFnF44=7K!O7o%v0O)?U*C= zvr%P<=&$>Aw9BzesZeoD|EM@J-b^P6Q*HWXp4FWlkl7{Dwi_2WE0BfNtaGSG6``wZ zQ;!%7X)(3PFax8r6(pp#E(#>^Ut)QtlEX|~U8-go4iiSn*oy(-Dev4A+a@Tk$ z7ZWPtouXQqqTN-vmG9k4UfEj#OfAmNt!R~U!7PgzK72Y{`>;<|?;NRP=6TGwD?UQg z8O31TnChSkC+-A$kDqy?C+<>0F?1Z0B83tmhP>gu0WwR z6!_(TND1Q?X<7jci6EgeIrXHT;k=_(){z-^R?`j5`yV%-z8Ag2E(^F&y(*HqY$ntr zEd0c^)To#^Yz&Pd3~x9yJG?rHZ-~)dfN$P=`l5CFS@Y(N=*+zUjubOD%m9U%XUz7U zMADxP<`#I;9%zIj&xesgh+*L$5wPX3t-I}if^p3-bp|m_FX=9mWAJM_KIj<`IyMLWtwsI$jv5oQBbyQXmbr)5(_SKNCB*g#atM_>agk77QUc0Pa==E!uu zu!2aj6ugubG2>6@Mpj_yG*mD$=Q8I)jyh&^tvr%o7UCqzCd?^C*SRSuGG@+Y&SlO` zj->)Jy3WNu0OnlgT;|;IaPDC`7c38dO!DHNLIq>}&Yg1VtJc+u-JFn-rH;|}&*=n9 zMAct*o`i#c)gR^(A&;1ajwBEw_)S&lFVGQtcfqAa(U&218HH~WbCmm9`w}~f>Qxnb; zi@d_kk8ZX8__F=}o#qq&bylk>B{TeyEoFs@OE9M;^f8x!H$)8=}m%}6=CfL3jFQv9Q^hZ5f+NVWeXxu&X5J%Zz+t|!)@g87IYnA zEKiB%Jow$8+Alt7{rmgTIeXr-0*3YHOz2ODS939H?27hKVFL&*fHp^G>jelU!|Jla zo+X8Chq0KiF+6jNg>{k42Gh<4u)-XSj%Cn_^%wgi7*Orn>QD8#G2_NH+RPf48J8J%IXQ7V zLq*oO*Z{<)GMmcr%YKG)MJLgw!2E7xjmr_w%fLofs=MFsh%t=V7_$$B;zH?qcE z6g!M{Ra$YXV!Bd)6=0cPj*Ux8UwltVk*D6n8D|-r`W; z((n7<&D|w4*~w(GyOYVj`#e8;CfZX^_lkL30T}9?KgklJl9i|tgV9nD27{p-WQki9 zX>v1)XpmpvzfQCKX^S1%>TX!;xS8y0BYSqzg0@DSVR*!XBDCBbxC;?v<3f}yv7uRs zyNyTfm%!tSf&HHHCH>&-yb;bsOdBFpE0bb{smV-BOuBzbA(kJ3a9;qJEk8L{H}NwP zZ%$*a18tglG|P=dr6L2ranL}8vazt#bT9=~bkeSf$%RM_N{~#GfLrZOSzMnb^bRet zb=ucz+;4U*4p~v+IfcM~Z6J7m7~3RIux!dG_=WHHU7CklDAfv>ir5TjcsTt6)WN-O z^0w52Mfr57d8oO&k6HknVwi#t)7f9T1Vg*s>(Tw{$1m)%f1jpl2hgyL&Z734owI(| z1AUV(7<@7Pv=i#{Kh$UQ23Ht9kS|5oK+}0&o#oW^2;W=JZfar6XxN&cmnc`8xP_A* z_~iSep{n>PyUx|zy@zW+PyN`gPO#c^IY6*dJi6!NHTB}MWN#hh0qe#1yM3&4MG1CMnNE?;)RL_z zz)s)o@hn1jZW1eSHUA)S{p`@aOOK#{2!8Hss@HCfa%NNaAjkCS6wDM$^lJ`_(?{~G zFSHW4S=n5e@pgbCzv$<@7%3s1S1)f5qO;$9bh|lFfr_!naNP5T* zY)UQLkY<1oWL)N8E2w6dN$97*Rb-|uFm9iRAb&s@Qe`fo z8WyuN9`R8>lKRSx1C)$l;T(PtbJqTt;)iaF(jOtZu-hwyKYRf84H&g>VPTCPU@FaG zPN^x^^!LAy)0AYYOji-3IL7V@t9YYqB*DfYsyYlTJpV3PvMz|tcinolsZc`5KoieUMKbBOB=whhQJPkthyhBRayo#Tv-btIyXLk9}X7nF1>vy z(y;`3J+Gu^za-4%GTP9V%oF2+P4K~%C2q6@yJ=O7PGg00`@6U-PCL69ur49<%Ps_= zCZ&pk!ZsLc|e66YglE+V~(7!=a8CPaMyRJhApARUjetNgTWIA^l-x^bS4w(&{B5A+$;#5XBii zvi2(p=INTuWNU*-S7XDK#fU` z2aQ*qfI%^Iadio?t@AIvhFT|#AcUzSvVVJ`B0_y$x`Pf3^sVu|ssS#QtWOFWU-Udw z-}zKL9b5qepG;pi(OyJFB4*o2e})vbiM$j&RRAOR-~?Ikodef9Z`xmX8GX76j5ob- z61@($`pBTGi@wS~VrD<_Pv0ka$0(5D1`B#>(#y98h{+)SA1ZMy)!6Ow*XGt8CS+dJ$x;~@9Yz#+|-8TL%u7I6nBEgXIzy0MyI`Tw`?cw zZx>#?fdl^~79TPFi!jmBk9EJX@*JOK(j>H>RTd}Jp1%g`#wPvE#+iHo3lr1+7b^{! z8XHKdzOb#)g|11pApo9DIQP61vz{<}+xP~3iQ*H`n2a`XY3zO95Lwd4fsSowbXX;YA z(f-PL0NMoJ_=8l#p;=EU%TOt>lwxdZ9(j~V%)S=A^5~ahht(y1N)N*`rsvLmIv7Pt z$ar$7^9H@C|E6qj;x{u>Yoq&4`RNd#Vrd-H+IJJv(!dJjHtbGAhJPpoIvsQwz?xLZ zZEDJm44=)mw$0JFrHv8wSD&ZO#Ks>84zd@YE6TDPcmDifG!ABoa192;JBCDqi8D4` znDwE!ub1KvBbTLDy-FAF?%ib?I!q`~nxXcRm@0ql@_wmXF=RSjDMSJ|@6H!Pg>Zz) z61&PkEpP)Xc}XtTsnVUCWij|SNwKiX(0PMPVX(@8%b%!=Z|_fKBvXGB#b6E*X?5^( z94X}P7zbW}}>|iUj`RFBPIfP-3NL&!%<-{}TDuyRnEd)P` zOH~imST=l%-|sNs>A+W1uD-yxel!ekwKr&S4W&YHFyupT5f)2RGL*`k^tYoy%~deG z#k`WaK-*hUgf)e1APH?v5#LA3)*eA<1~#n5F|QsU0HR&_u<*-k)-_FQ+tGF5V~av} zlE)?v7N&T`vHDGA!`29b*s>Gzk(lDZirCh-J;RmKub$q^W%ZJSsFCrTJ5nd;a->0X zv!8GAhfyj?Uj!42?Ao4Yg(0^g*QGCnUzZTJA?cv|ugQPl5iT;X6klQDB*m)b15tsZ zwBM4kE=Kp)Mr`r@xysz7YU!~Yd>G6Su8cwlEb8mKR>%3L)}ka?*MES(MmDcxsJAMB z2img>-n?$3ilba%qdGq(O8vlHo&r2NNyOhPnbiFD}@Z4J!xb8wnH^8 zQ@i~Vh+gmgZS_ZYE!h0?bdJcAprnmFl|HS@L;I$3I}N=>`6D-Op9;+>mq7VQi5hMReg| zs>v4(>{Jhn%Ubf8tUTj>bev?X$%ZkWyxVhAsZQU6z~upUR;SxvI{B+2&Q3g%WORa8G0e5_fGDF%e+Wg$5=Es8 z-aZm>0l#q(=;PhS$Ylc{4F z?qD(#7dF^WNX+$y{L4ut>J{5N*}<$ZB@4gPv(F$luo7pYhVW0Qkh6^BF@-f^ZUjHK zW)X>c`;eBwkx-PtNhnsz>?E>%-VPnVm7i8jEmun>837`>$3kB(h6imk?{!e>d~KUn z3y#JIRT<1pGe~;U!z(lt7}r61TN=<(TqN^5FcEPn5_c9CCL6RXZ3?EA;fc>D^KT3A zr)J-*jUb;J)KAW^1wK!9$KX<%E4@j!1F~s2xVVsBwAdg={vtx-XPIvIq%?qf#fw zh(t`mi%7HK3eT+YlhTr(Tw9n$+jkI`w#C8^)3iw}9=!HWk_4;-%xq{OdegtxO5R>w zPLaRpBr)^qbK!&yrEesrL-YS*VPQ#q*HvAf^Bm7DTVl`>k;6Z6+*6F<7NPMw_9&SZVeXRmzqhMexaBMJU+xh5v|GYc=dzE&e7q#uoQUDl2*A{sseMhq7f-8V#zZ38aNKHM;P(Q{y``+fH-DUzq5G&4IajQP6fcrFFA zVjh)8?^RsL1>h=h~l2hBd@<&#m3->)Kp zPDg{83f1mluj-DHC{pVGUwG5R9ba<=!hIH%J8-x0grS z`{i=>W|YHPUSGZzYO^rW?i}+y*LIs_taXt`EiNXpg=mrM4BoDLQgEEleY$7^Rxv!O z@ffo`B5xN}`T3(GaB5s*`iEvAppS1lazT8JdAXB`-*AsA=?8rQykX2BK$no~Z+C2W zOSu^Kt?;Q8;q&~^os)xAEcD~%!$QD4quj2~^-x`@WTL$!X;A+b?hECNF#J1NCM=}u zUpdmn&%DsBz`4Lj_I{ZzZ(x`2-qn};6m)ZZ9*4A`7`x3UyZ0`gx)H%iRv=n~dJw@u zSSn_wy2~Gvqi`%v26Pi_$lL8TIj!V|ZAwMO*mgI=kDQ^g4mY?#c?9tLH3joup!zeE z73~ikyQpE@Hgepl=jlJA;Tg%%yCmQChlEjk{G{qiO2_xR9H{z=hYcLla8h3y4jI-o zH=Dp1CdS}Ik0NmVLyUfbwTwKHNmY#AqP`phK?F~ULjeG#W)X`!ZR16cgd`DK2>LQQ z5U9rK1FmmgCSOzyaI@J=wzs<9l2oIdBM851+ri06JlUytpcSvbX|XVm*}*TCn!<(9 z_S9H#VIIQU+ODg8a0J?iL}n(4toYwW=f>Kzi9!=+(wakSPb2m}eNPBC>`p)<2us+u zHHVjq2%w`Jlih;+Ebsm>uvC{=iue34uQ$rag<~Ddlc*xBj0%GQk+!3T?uXMXEgqN+ zZ)NJWxc{9MLR>fmTH+yf46Zd9?F)iWAY~98QooBOx2;!{TC}jKCYa`D@G^SLFLL<`zOdSP zV@B2nez}l+IcV4VavDGA8^Gu~TWQy_y|l7zfpBvLm=Dn+M5qkY5Odl3BE^VR_Gwv6 z9q-*TD-75>SJ<)oeo=x|=3QyRCACU*2lXNu%E>2Gy>2au*(7LgD$`}((3NMN&*mja z;9O}BTP~_9{L86Afi6MkcLe=35+*ZIwU^i;Axv_Fuu^T+@7VFgNN`DJIA;EvjjE0% z!#93Bvw(D(t<@RxXW{+SX2P&Y+=WNP{gl}Y?JN+%d_O`6KSTC^1Tc?X51q{>Z@G;8L+xEBl+U z&>x{^ra3MZ%JtpXjw#vv-3ECFAyW!fR15uF$6sFvO!S5BTYZRW5W?a*HOF!(qpV}d zIZS|y$IJ!?{vp9cWtU9%GOlc@Hfx(Aeo4N$t8lbpLF*S^bfM=q_;l@k-ZAy>V^xCA zbsMccDvd>s$QTQK1f2I=%wrp7`j!7`x+wDBI9Y6N(rLdA#IbxN^`r8;@QuJQXDa$~x4ikOlY~bv=<#jfmAoP|}i9Ak0?i1yc ztdojPWv!kLqX2rm%}@bepOr~@+s?|8n;S;*^0v87**9JZc!T>6(+rPhaaD>+{0?UT zeM9kH06eB6e^&APZ2T(^+OHqW6qYrOsAu_ql|!cuS3kasdtpcx^(PsP%l|&5=K!7z zUm}Lz4ka0pC-z67SPhd}S;(;#Qe3HJKgiV0#~opnq7y1bB^P0`mExVZU?IoXjazvQ zUTZxHC>(izGAFuFv>kwJISQR2Zs*wUqMug+gO1usr|3G`Jd%FW#Z=NlHbsdPxOiTx zd(uGlMz_xrZ}YXjwCbOgVHHjOlmHLJQkqN1gZ2hZ+#p-*(P?ld*|Lc#-9pAtRHQcV z#5k#U9VQ9eMLrM)hj$AjA`b(IB$84}Q08$QGarW?^!J12)C)>{!b8mxd=6tHVjTHy zog9Y&f*VI797pz1w=zrD*7ez{-L{(@kX5~h&^y5&GDuQcMUEMQW_|_tXaK?RdZ-6u zT%)px0jglqUJD-+jwd!yM!NN6hh2c(?%Q3$4%nYp?R5t0FVxnUW?gg{z6PK z=`a^Em#Ry;+hRcpy!Xl`$P4}vq6${Iw*~y9{|?o*r>_W0rmqqa2F%PcnEt_&w(H={ zfV5_*@-&{FY|f>$L)|ols(^GH?@pCVtNf z*%ub8@rwDCVJHuf;unbi9Z#kWy-a5KBC1Tf@M+NDSec4fOXaj?t?@yOtg>hk3{p0qq|A{FJbAM#i8lqfp4v2D2Kv2e_mK2sejsG-3pnFsO-O37l|KRvdU?X|O#Z6V< zctEuLkxiO;TMbWLJp^H=+5_>h8YW@1dc9VMg(gZsEeIikUR~+4klz-oj%@H zdT<@0yRTTvzSD|~`p137O+VMVAgLsk4))seG10~(Wo0LR>fIhj|BNz@St*w{YR&Q3 z*I*rNn`$~u{`r3I;RURI`H80ACPJ7L(iyrK=bNFF8X)YH^YSlB%X$ifF_x|#Db3n$ zpZk5-9Jt8+C60cgt8!W$xmtWjI6)+kO=|=BYaaeh9Q!mi>$q~z=b)-Ybb7HyCi8se zZR|MGB8uXgils^178f#>x6{p0_Ap7&%D3RB2k|XQby1=rW2H1dDp#W|1p}^XJ(L4^ z2VD*hb-$Mt*~+2_>;|H=9^rGvxRdCJe3f|o31E%d$)|TWJAEgp(VV+6f!g2C!!r*! zOqwDuOfKu!F^UbNj$Aa1Sa~!BK7&p)1~NAEKJY0NbRChGl`;}TyR@aBcqqPUEJII` z*m@G&AbUkFPng%xbus7|WI$#@Z)%H`Jlv>1n@R$*&D7wF z-QfW^HQ=}fEQ!s^0%7>k-hO@W}PIZ~AQ6_VB4rUbx2AhZ+t zBl~hc85T5Ia};}2pUd9zEc4B0ZJ}DAJ14`~o0#7ko0S)H9k{4ammHZp9AUY5Gm^*~ zL*%Dz-)XgQNBF1JDpPwhr2g>Pm7i|$2RO@y`)}7;q|#wk>tNI3`D#&u>I|`mk-GZ+ z6e_a#i^16@BV&cDsF>~+X<=O2etsd9E)cTd_cf58>5=RDr=1QiD!zYP@ z#FhLf5MtkE;e$`R)wX^geaq*vLjefj!ypxx8N19gykxmfidJIj?jO_w$IIbq-<*>j zP9~B+>r?`EIocF7Khha-Xr!sN$p75aB9f&rc_3fTd<%k}*CQ~xBaTWvuwaoa1l?n7 zQ(^Hyr}J|1FsBI|38?B)>Qb0w_$`E#2r$J^R2Dx_=%;WDUKn+q1O)6VbIa!e9XEX}(eb<$AdX?4)TA)L~GjgEg z`@#LY-@{fQ82eScfXabj{sEM~Z`68Lc9;!<|4tb>U!i#|Dt?&PJ5D|ESTgcb-@OI) z7ragFEs+`TO1+JXd?R6xXbd zMMXD$l>pF@yj2@BJZFcKD0%|+M~JcSv2OTO=s$W)ew~&ZmyeLG&H-|t>S0Wfw9AUa zrK8P#$b+o<(p}u!uP=z2xA7I(7v}>+R8Vd3hl4*G{)h@(Y&M4{B9CQ6Vbw|!m|L=) z@Np1zNch=Fpj)%ZB%-`MMV(+N#0@Cg$o%?qzFNW z!?5v2W0jfve9uUWNm3G=m>d$LSo|(bALQGq5%D<-X6gE>2I1s{o9%*@aNjeIYbbpOQzx{VfvBO`WGfQa_sydjG}zL~L6%8NXsa&SYvH4hawA`>Ff29p-P1BO=nrkcUtHE~-wVT5fE3vWKn z8k~Q<2uArHlZ_0bY8yEDst~KI=EXWHC`}kAS5L;41IW3}7Q=gzWU2>!h9tIGgam7f z>!f&`1?fbcpIf&QoRa?7s5wQk@lBl3Sa#i$yl#{nY`oPjzcr*1#3CYZ6 zY#7bBT;HenbInJg?iP=-I6C+bE6L^Ybm5#B9bgPm51ltRS=bGL>IEWIJ ziKY(!)~mKwRM^FAe+cf9hNmLUkhf>l(SWfU>@IAAwzoMpD-jyGuPsTbqpf`FyIt`U zEU00u4zZja_3p4MxQSiNPK-6b@H;3L(JSE1vM4jjJ&eJfmLre0_Q#lH@=z(3nIblz zfacx(Z0H11$>v4~0(z@(zXTesm_(b&bc}F~Nj{Fir!M?X61Cnc2@K?*H-^V%WxHJ+HHZEqT_F8%MV|8o&S)qK^kIQ^=8Cfb*hgL*$_g_ z=6(_rgHUkbpxs_!hfMz|6X>?E02I-ZmvgYi`%Ol%%a`$q6sbo+}}zo<}>NcLfnRY3>)QnsYd| z%xI@ZOMgM(HSk6;)~FqF(@@ROvQx%ztPB=Hc!ENP%2|oiS>4!!Ls(oo3 z-;y*k@;jZ&TYv96`xF_z{zmT=FJQjF*Cbc8sDj`~6(Q$WxPrK_n!ya=32YgyJoOYIq;NFh-8x3!kEICqXn^; zaEVvMC=9y5$be!LZ;g*(MYsfZ?34>;T*KG#^Q6pV@2{aY19@H|_fF*56oTpmk$vl3 zy*>g8a@L+NDuhGQ-&p2Rx?NhznwOGhsmetU*?%2lw2l(Y@REEr#OqY0aZsyf$GcltU(p3yBDPg;iuZ3$YNGN^sr*vWWMJ7~1?S=}V0%*d?DT9hQvSK5FQ1Oqmla0U^eg{YOw2 zphrVNrMAJlcQd#-<9cnlG5ux=Jsy*~FD~YnFC6j*USaSD&i0gZ^sP+=(2O&dm_cP1 zpjbj~zd>vjO8q=B12JdfR4*Bz#pxg-tY7AWC!>yD1 zL+nyXJuN+xa5&HWv1Gd@U$lcy(~j=R>T@27Dvyx4v(MU`Pv??CFFnG#TihCBbvuHs zd@GU99<@3UXK?nXz7HSfsHV0H@zi-_?}=8|tHnn)rA16ONSW#f>*XTgo&W@b{JBtt zM}7TYtU-YO?n~geEpxx#> zzDS!Wu(1c62>JP8T&y8QF-0tzgxbEBY<1)#u(F+xN|+TMpyES>YiG~@EfeZi^>Jl! z`_Pf4&+;FIDU30D?S4`t!+47f*lrbmK+cZ~1Jyi|xA`OX`|=(#I!}VZ~)16I;Rwb{fWtCgP>isiaoe9qBg)T2bGOCM1&@{!Qrud#luiPeP?$X;6x4`E{y+cvE0PA@YA7g zS7)~=6{0nPlg9B?Ldyr_ex<2p^4p~qw~$a1(!RNw)$0d(a>9j+Sp$2Ko-J@(l|nIY znNxiWha{Us!b%$A_*&f?HDV}`iJK2~n~^?LtUkU`h5a0SCk_kW>U;r58UCb~3KPhV zu9V1k`5X=Z(FVD%p8j@)vR(efTLxAjSGXFPvN~-Iz9OAA(rZmL5RC}TwF@50Hb}*O zmlBkCjk8maE@HjU@8;VKd~^lpCA_@<`TBIdMR5$aat2~6M<*OB&8Gu368k5G1cE&W zODRf~&Su;C;Gx2pmm}Q++TCIOc4OqIE+H1eMu_n*lS2|hCGCTmVy#-j(L+Mb=J-adURRutFwM5a~U z`{#w+usA7N>qQ))%m@pZ8?7OiDYirS7YwbGAda3B++-sxK2P@BQ|I21vlcRsWAW@H z0UB*zYM4sLnSb?uuEOz{lS0glh5H?E|EV_e7n4$r1UCsD8u=<^d;^s#47ZvUVygOi ze~_`9uVbeWlrA4>8T*GAX3R(Wm-9vkRJ(xt>Zkpje?^GE*v`PxsEJV$AN|)*jVuPB zHUi`y`%s)>hugHI5^oLP-6}spVK>={{KsDm6+s^SZoIS!^8oiDl^{;gkP3wLjoFq* zJ)-akqjd$QxyQbWn9^5?4ZP-Mq^SM9Mm&>++oEz=C_R0lU*_39_fVzArx$rmco6dg zM!jxxW~{wHe!w}*;3iU3^a1`1gvkIQjv8L}LM8}3M3gR@>}LpVYBYUxvvn-hDQO;_ zY^KM4^ih;wkP_PZ9Em=m@~H%jw1~O7^kDI6vH-}%yy3v2#ej1{Q*WTy%xwmShz^oy z`Tq445b2l3{<7HzbXZxTz&VRUc${OWHW* zN6iNMTn%7gy@$ok&db`4IAG=$T{#-6;B5QhI~?#?^5*QJh_mr-^X@Rd=etsh36^9m zZsj@Nl$K&R)zi~KU1j1;Su*{e&E|{U`{DzH){>vc%Mpm|^7Ur?K6E-%EC5nES_gA3 zVm|>$uU+lAU*#wftcPPISsVDSPdUly`6!+ZKXQnLQ_LC3M(PWm_;Ul zg6PktP8}=c&4qg(42#BKuvblTo!i)o9=jbdLw-fWP?6B#8&2QKcwPD?*xZYUVSl8o z=X>P%z0b;T7Ou{n-gc-75kevdANsUV)Ys(rA6rAsDL2tkMIpBbb#`Fb?vK#;AgF#3 zsO5X^=dB_|JJx~yhN|p1|$>X2?&*EpZ%m@npSJRXFq9hxg>u+t=EGQTg8{xb+jwiR=if9-ekq^Gk{pMp_ zm8%4kq;cGsSHX|)PD>TcnCEW%n!rRSNEg=3k$$#_4}h?ZrLL_O=dHD#r?w^IZrJvE zFyJ9p&Y_!ZWTiba%1_**yUXQ&1KSk{=YeK|$(!cO630o|ol@lpNy~}v?b&N8txu=U zz+0xihk9p6F3{kU(vCH; zvT%KU-HG&B8efZqH>{6MJ4K=L^xk0+%rBi>Lyp3E3U!vgP}~%RKGDg@cbl#5tkE$d z+-YNebGy60p_WzJo}by7doKChrs$2Fs9S5&^{DEZ>3IJ`#Y21R{|D57%dVGVLWoAw+ zz_K!`$Mqn`y_wX=#+4iAWzuYmA@Z3566X42;G)T$fdei(T#t+%Ghv@B{u6KsP7;Qy zB&@_9%@V?8MqAiST-ZT4Jr&?9vGyp*?nPtc!-uL3&shGFYd_josd?=(*$WC0w|i2U z^n|#KmbK|Mi@L>-QF5k^CjBtw`D4FVUcfoq6t0nj zEO3Hbng)TZ91W>kd05GbJ(o+Y?DQerVH?Q;UmU zo-Dqc|i<3}|bq7}JmoickJI?Bs{h>o-g-^gk~4RqCho7+Ghd zEvm5#&jZt-I_MABX8C7yK*X&vsKM(xRw>R%yw}vmpSy2Vgr7{?lQ0+Dmh~QE_$iM_ zTT9NZ@B>Mhbu(V;AhdsD(<`#%(HTf(uA>(LxpQqQm;VoI%UxttQ6eR_FwR3J96<>| zPZsgh?cV5Zc3@+`w`5h5PuoV}e)}o8FjD?(H`WKEfeKbE+*_$bg}23U_N(Nw%7-38!ikLW*vwLI+B#*l0V(VH&5&k!9qnX%z5_MCdB!c4|e5 z*n7caPg`3X1s5e#^kMwj%*W_h|L zV3kZr7a99hzf6d|^Zmqb1Fym!AIv!j=9b?V6DhrnRHu9A6vM7b3HIWHjAjF82;WJE$qm(iLAtKOkqlBGe!5KUmhLMACLvRYU9R|Dj zr!kMb7#s3bF<9kWDHMl(b#T^%5=QB^TKLRlqiPTv zVHFcqTMf>;_Kb^Pi@mD|G3^uNudc+-bgYPC95GLI49Uh~ds?fFQ&{Z4ibe3VZNC2O)Q%u*WvTCel~)&Slc8x zZY!aQBkj7eCz^%kh4DV8m&7gUA#8jw=$vdB8Q=hf$&%6A`nr$zL@m1^4ypS|$#A z1;lvdq_qq7*l!5}h$VEvn59bi_KlhZys(^_gYZO{5|4Btul6C@U8aJ^cgVlV{D|Pm zh7iq9ix%*x!03`}TmS^b1u_H#CIm=~1b_{^_&A<0&xZYz>K9t_1E=fUZPf`frzK@$ z5DX{PlGAA`ZX?O+Nm?L)aS(V7i0TQ30rs`z-Ezw>!pDS3Re!vQc0bF_b-(Otf9}=1 zN@kcW#V_6_rb>*FQpwCjnH>oDyd;@F6`h%+g(x7!SUtOVaAS=(-lr8~;P28k1IPy= z&k9X92Vb38sPNAoag;!*sFdweM;6!}x)*P6gwTqxW)JORi)6(}YbMo08lfW1 zCOLO+nP!4*B;jF6k63n8=RJIWYW!jh@}EX81b9z*TWGfkUSXtb_;2Hq@ zLi7$>;gjkX!Z8AwX!qwoZx`+;D3CKjJNKc#54?bwgcC9-%S43zM$?X47|lhHxAtQ- zrI6M5v>_q*g?-pOBNT+2!T9kAo-|mFIwmj8DG0;@j}Or5Z<7(x!WIKz0e{F#6lnd1 zEGIMDKgN}&Glf0E-lFUJpxmzJF>-4>JXB5j@1b?wU?j9|xMh48nvAls19Zh8C z*4?5-qM@JapAC=A>ms(HyYa`u&9t(5YiFhKeiu0}niO-`l_IdvX+?`t#8ghia}zy6 zoBFoxn(I0y@OZ>Pz{9)Xg<aF;5E&5%5$F2hI`>T%{>IyQGud(CC-MwQ~B`x zB_esxt=TWvW+Lk3`EccH;`$qEQ>$E!f##}+2~t#ZHJ-o7rU5-k&g3@h;fusQeNx(mo5vYd*{4Hb9>)%Z(NRSl32i3U?il>3X2gQ>D7yw8Y z5TFiHfH;sFNCi*_Ie;FP5g)u9Li`tVG0Ua^ delta 30510 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

hp2zSEUdg5GYnIYCse@T5WoOQS%MIOUq z)`CU_pqiWKFpFeuDdR}IghNiu07n_5l9P!)GI=_auTYhVxcU!L$!&F-E*|342Q|E9TI;a5Wt75f z46PH5!jA>Z1Q>d9-Rkcr<39eTRkC2-qRCI%U~t_JSJb-XeR}(kOOdQK8z*8@i6c1J z99Nu&E>q1O(^;op=Uw&fy6Q4@cBL2Ykwx4y|W47x@5^j;U0h$GKv z<9{Slu^0GSe4~-_ZD5UIjWSUAZo9mfC*%Bg=asLc>N+EoFc=e6CWr=|Ll7ogV640vkzYcv3kbCo33l@(+@_vzRPm ztl`w!$`50u;&qwd;Btd6Pti}`S2ks~O^xza%|Da52`@NL;ZTuz1)4r(8f|1^?tpD0 zrr2mNEUw6M!>s*G!K$wgNB5GeK~iMyX3d?nSX@w2iJvz+ddw*1(Q4uP5>L;3sC;oEUQ5L%RDXZKya!A(BFqXuH>_IGOoyvV4U-zb)5;=0od9kmO} zwXqCO@_8=E2d>T@0n13C~U zvwVbXH9Jb;SPyc?KedKhxZq@3auHo@XTHnzd`r|*72;TtAajqorE}=tt|Qi~oy;#< zKVQF(Z_D2{TIrjCVUj<~pJ%;KN49O0vLX(AOemDl0srut!jtJWB5G^d@mZJ9&93ox z)k5D&IbAT-b@W5N2SaWCg#UqT-iBaY$C%H_|INu`nnt0%Yt0YZ_`nv@iweP8>&ovu zo&SZ5@}ZFYgb7Q!%7%Lr)D(_*|E}jnIAXg!<0CQ;LYPZ+t20jrnAZ`%Qik!krS}*J zpd(NyX8}1TwqsW9N$GHC#Ih<&eg|`(NS{Oj+P1b?}?fokyT-2O-43%{c#CF zepRl#O!XYfMcoB#)W!;!UkG|y*0e7|jnQviM0MOl}Y0+WNWoqZAoZdSwzxAZ!&g<1qxgss)(6vo&(U zpB<+!&R!pA_=#4<)q0*00E?DTKa`p!P>{2=CkGH*(%Qo>tTL4oBkjDP2u+*0dD2VO zLgI8JHEL6oJDhWKnWgUs+2n+FI@(yJtpztZ5(v}rXLQV5$1dC#f^3}`$2 zz1ERF5U(1vwhx5Sw!-$Zt%f}G0aPST2p2bMrULZvCd!btxdJPHk>0K;Puq3IN02}D2W4+^jp8VT}$rY9&K z8JG$RP=j$0v7oOh!9s|ypdplCCD1Vubes~*N%=pH;Xr^-YyZ9w5oqDZ)4)3pI|xuM8n6@?>jMay2Je7+xSIDBgOxB th9?u^|9M7ys39%5emejF From 7a938af2012345bc0457af9c62945d0d638a89ba Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Thu, 28 Mar 2024 10:14:38 +0800 Subject: [PATCH 3/3] =?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 --- .../版本日志/SGGLDB_WH_2024-03-25-gaofei.sql | 395 +++ SGGL/FineUIPro.Web/ErrLog.txt | 261 ++ SGGL/FineUIPro.Web/FineUIPro.Web.csproj | 144 ++ SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user | 2 +- .../LawRegulationIdentifyEdit.aspx | 2 +- ...LawRegulationIdentifyEdit.aspx.designer.cs | 2 +- .../InspectWanderAboutList.aspx.cs | 2 +- .../TestRun/BeforeTestRun/SubInspectTerm.aspx | 1 + .../BeforeTestRun/TailTermHandleList.aspx.cs | 4 +- .../Feeding/FeedingRunApplication.aspx | 134 + .../Feeding/FeedingRunApplication.aspx.cs | 450 ++++ .../FeedingRunApplication.aspx.designer.cs | 134 + .../TestRun/Feeding/InspectTailTermEdit.aspx | 181 ++ .../Feeding/InspectTailTermEdit.aspx.cs | 393 +++ .../InspectTailTermEdit.aspx.designer.cs | 269 ++ .../TestRun/Feeding/InspectTailTermList.aspx | 189 ++ .../Feeding/InspectTailTermList.aspx.cs | 365 +++ .../InspectTailTermList.aspx.designer.cs | 233 ++ .../TestRun/Feeding/InspectTemplate.aspx | 66 + .../TestRun/Feeding/InspectTemplate.aspx.cs | 113 + .../Feeding/InspectTemplate.aspx.designer.cs | 125 + .../TestRun/Feeding/InspectTemplateEdit.aspx | 71 + .../Feeding/InspectTemplateEdit.aspx.cs | 84 + .../InspectTemplateEdit.aspx.designer.cs | 143 ++ .../Feeding/InspectWanderAboutAllPass.aspx | 119 + .../Feeding/InspectWanderAboutAllPass.aspx.cs | 156 ++ ...InspectWanderAboutAllPass.aspx.designer.cs | 197 ++ .../InspectWanderAboutAllPassList.aspx | 137 + .../InspectWanderAboutAllPassList.aspx.cs | 173 ++ ...ectWanderAboutAllPassList.aspx.designer.cs | 152 ++ .../Feeding/InspectWanderAboutConfirm.aspx | 137 + .../Feeding/InspectWanderAboutConfirm.aspx.cs | 651 +++++ ...InspectWanderAboutConfirm.aspx.designer.cs | 233 ++ .../Feeding/InspectWanderAboutList.aspx | 139 ++ .../Feeding/InspectWanderAboutList.aspx.cs | 192 ++ .../InspectWanderAboutList.aspx.designer.cs | 152 ++ .../TestRun/Feeding/SelectTailTermList.aspx | 44 + .../Feeding/SelectTailTermList.aspx.cs | 89 + .../SelectTailTermList.aspx.designer.cs | 71 + .../TestRun/Feeding/SubInspectTerm.aspx | 158 ++ .../TestRun/Feeding/SubInspectTerm.aspx.cs | 633 +++++ .../Feeding/SubInspectTerm.aspx.designer.cs | 224 ++ .../TestRun/Feeding/SubInspectTermEdit.aspx | 65 + .../Feeding/SubInspectTermEdit.aspx.cs | 91 + .../SubInspectTermEdit.aspx.designer.cs | 125 + .../TestRun/Feeding/SubWorkInspect.aspx | 121 + .../TestRun/Feeding/SubWorkInspect.aspx.cs | 439 ++++ .../Feeding/SubWorkInspect.aspx.designer.cs | 143 ++ .../TestRun/Feeding/TailTermApprove.aspx | 153 ++ .../TestRun/Feeding/TailTermApprove.aspx.cs | 233 ++ .../Feeding/TailTermApprove.aspx.designer.cs | 278 +++ .../TestRun/Feeding/TailTermApproveList.aspx | 146 ++ .../Feeding/TailTermApproveList.aspx.cs | 202 ++ .../TailTermApproveList.aspx.designer.cs | 161 ++ .../TestRun/Feeding/TailTermHandle.aspx | 131 + .../TestRun/Feeding/TailTermHandle.aspx.cs | 192 ++ .../Feeding/TailTermHandle.aspx.designer.cs | 260 ++ .../TestRun/Feeding/TailTermHandleList.aspx | 147 ++ .../Feeding/TailTermHandleList.aspx.cs | 196 ++ .../TailTermHandleList.aspx.designer.cs | 161 ++ .../TestRun/Report/PreRunSchedule.aspx | 2 + .../TestRun/Report/PreRunSchedule.aspx.cs | 53 +- .../TestRun/Report/ScheduleSetUp.aspx | 26 +- .../TestRun/Report/ScheduleSetUp.aspx.cs | 60 +- .../Report/ScheduleSetUp.aspx.designer.cs | 18 + .../TestRun/Report/TestRunSchedule.aspx | 2 + .../TestRun/Report/TestRunSchedule.aspx.cs | 92 +- .../TestRunManage/InspectTemplate.aspx.cs | 12 +- .../InspectWanderAboutConfirm.aspx | 3 +- .../InspectWanderAboutConfirm.aspx.cs | 7 +- .../InspectWanderAboutList.aspx.cs | 10 +- SGGL/FineUIPro.Web/Web.config | 4 +- .../TestRunMonthSummaryReport.aspx | 2 +- .../TestRunMonthSummaryReport.aspx.cs | 186 ++ .../TestRunMonthSummaryReportEdit.aspx | 65 + .../TestRunMonthSummaryReportEdit.aspx.cs | 246 ++ ...RunMonthSummaryReportEdit.aspx.designer.cs | 96 + .../TestRunPerformanceMonthReportEdit.aspx.cs | 14 +- SGGL/FineUIPro.Web/common/Menu_TestRun.xml | 10 +- SGGL/FineUIPro.Web/common/Menu_ZHGL.xml | 1 + SGGL/Model/Model.cs | 2213 +++++++++++++++++ SGGL/WebAPI/WebAPI.csproj.user | 2 +- 82 files changed, 13644 insertions(+), 144 deletions(-) create mode 100644 DataBase/版本日志/SGGLDB_WH_2024-03-25-gaofei.sql create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/FeedingRunApplication.aspx create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/FeedingRunApplication.aspx.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/FeedingRunApplication.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/InspectTailTermEdit.aspx create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/InspectTailTermEdit.aspx.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/InspectTailTermEdit.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/InspectTailTermList.aspx create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/InspectTailTermList.aspx.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/InspectTailTermList.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/InspectTemplate.aspx create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/InspectTemplate.aspx.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/InspectTemplate.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/InspectTemplateEdit.aspx create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/InspectTemplateEdit.aspx.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/InspectTemplateEdit.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutAllPass.aspx create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutAllPass.aspx.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutAllPass.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutAllPassList.aspx create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutAllPassList.aspx.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutAllPassList.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutConfirm.aspx create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutConfirm.aspx.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutConfirm.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutList.aspx create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutList.aspx.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutList.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/SelectTailTermList.aspx create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/SelectTailTermList.aspx.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/SelectTailTermList.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/SubInspectTerm.aspx create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/SubInspectTerm.aspx.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/SubInspectTerm.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/SubInspectTermEdit.aspx create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/SubInspectTermEdit.aspx.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/SubInspectTermEdit.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/SubWorkInspect.aspx create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/SubWorkInspect.aspx.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/SubWorkInspect.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/TailTermApprove.aspx create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/TailTermApprove.aspx.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/TailTermApprove.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/TailTermApproveList.aspx create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/TailTermApproveList.aspx.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/TailTermApproveList.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/TailTermHandle.aspx create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/TailTermHandle.aspx.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/TailTermHandle.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/TailTermHandleList.aspx create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/TailTermHandleList.aspx.cs create mode 100644 SGGL/FineUIPro.Web/TestRun/Feeding/TailTermHandleList.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/ZHGL/TestRunPerformance/TestRunMonthSummaryReportEdit.aspx create mode 100644 SGGL/FineUIPro.Web/ZHGL/TestRunPerformance/TestRunMonthSummaryReportEdit.aspx.cs create mode 100644 SGGL/FineUIPro.Web/ZHGL/TestRunPerformance/TestRunMonthSummaryReportEdit.aspx.designer.cs diff --git a/DataBase/版本日志/SGGLDB_WH_2024-03-25-gaofei.sql b/DataBase/版本日志/SGGLDB_WH_2024-03-25-gaofei.sql new file mode 100644 index 00000000..f26927ff --- /dev/null +++ b/DataBase/版本日志/SGGLDB_WH_2024-03-25-gaofei.sql @@ -0,0 +1,395 @@ +--cd C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools +--SqlMetal /views /server:WQ /database:SGGLDB_WH /code:C:\Model.cs /namespace:Model + +delete Sys_Menu where MenuId='EE7E37CA-384F-41B3-BAEE-89CBD9954AB3' +delete Sys_Menu where MenuId='E9EF7C6D-7F0A-4FBA-8A79-474D4E61AF27' +delete Sys_Menu where MenuId='9ACDF513-BD63-48F5-BFA3-B9B1B7FA19E1' +delete Sys_Menu where MenuId='3D554109-D95F-4051-8A6C-5616A7A95C94' +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('EE7E37CA-384F-41B3-BAEE-89CBD9954AB3','ԤԳ',null,'TestRun/Report/PreRunSchedule.aspx',1,'2BF9C16D-536F-4F89-AA59-49ED1A1A164C','Menu_TestRun',0,1,1) +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('E9EF7C6D-7F0A-4FBA-8A79-474D4E61AF27','Ķ',null,'TestRun/Report/FourDecisionSchedule.aspx',2,'2BF9C16D-536F-4F89-AA59-49ED1A1A164C','Menu_TestRun',0,1,1) +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('9ACDF513-BD63-48F5-BFA3-B9B1B7FA19E1','Գ',null,'TestRun/Report/TestRunSchedule.aspx',3,'2BF9C16D-536F-4F89-AA59-49ED1A1A164C','Menu_TestRun',0,1,1) +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('3D554109-D95F-4051-8A6C-5616A7A95C94','ҳ',null,'TestRun/Report/ScheduleSetUp.aspx',4,'2BF9C16D-536F-4F89-AA59-49ED1A1A164C','Menu_TestRun',0,1,1) +go + +--==ԤԳ/Գ/Ķ +if object_id(N'Run_ScheduleSetUp',N'U') is not null +drop table dbo.Run_ScheduleSetUp +CREATE TABLE dbo.Run_ScheduleSetUp( + ScheduleId varchar(50) NOT NULL,-- + WorkPackId varchar(50) NULL,-- + LevelName varchar(50) NULL,--Ķ + ProjectId varchar(50) NULL,--Ŀ + States int null,--1:ԤԳ2:Գ3:Ķ + AllNum int null,--ȫ + ProgressNum int NULL,-- + CompleteNum int NULL,-- + NotStartedNum int NULL,--δʼ + CompleteRate decimal(18,2) NULL,-- + AddUser varchar(50) NULL,-- + AddTime datetime NULL,-- + Sort int NULL,-- + CONSTRAINT PK_Run_ScheduleSetUp PRIMARY KEY CLUSTERED +( + ScheduleId ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY] +GO + + +--cd C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools +--SqlMetal /views /server:WQ /database:SGGLDB_WH /code:C:\Model.cs /namespace:Model + +delete Sys_Menu where MenuId='B148D864-DA22-43C5-8D52-F38C0D34C7D5' +delete Sys_Menu where MenuId='AB9AD56B-574E-41DC-8E89-5982A287C358' +delete Sys_Menu where MenuId='A11DDC01-8F1F-4D09-A85C-1C459741DDB3' +delete Sys_Menu where MenuId='AC20AFEE-6B0D-45D1-8BA5-80904DA4CFFE' +delete Sys_Menu where MenuId='7C1E0ED5-518D-4C5B-8910-A25859A9C7EB' +delete Sys_Menu where MenuId='0AC1D5B3-9E0B-4AC4-BB24-0A9F3953316C' +delete Sys_Menu where MenuId='81162C96-2E10-4936-A2AD-B221B7966C85' +delete Sys_Menu where MenuId='0BF6BC64-8F72-47EA-A5B9-60ACC14619AC' +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('B148D864-DA22-43C5-8D52-F38C0D34C7D5','ģ',null,'TestRun/Feeding/InspectTemplate.aspx',2,'81CE1758-5BBC-4709-AF4B-DDF6CB345571','Menu_TestRun',0,1,1) +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('AB9AD56B-574E-41DC-8E89-5982A287C358','ͶԳ',null,'TestRun/Feeding/SubInspectTerm.aspx',3,'81CE1758-5BBC-4709-AF4B-DDF6CB345571','Menu_TestRun',0,1,1) +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('A11DDC01-8F1F-4D09-A85C-1C459741DDB3','ͶԳȷ',null,'TestRun/Feeding/SubWorkInspect.aspx',4,'81CE1758-5BBC-4709-AF4B-DDF6CB345571','Menu_TestRun',0,1,1) +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('AC20AFEE-6B0D-45D1-8BA5-80904DA4CFFE','β',null,'TestRun/Feeding/InspectTailTermList.aspx',5,'81CE1758-5BBC-4709-AF4B-DDF6CB345571','Menu_TestRun',0,1,1) +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('7C1E0ED5-518D-4C5B-8910-A25859A9C7EB','β',null,'TestRun/Feeding/TailTermHandleList.aspx',6,'81CE1758-5BBC-4709-AF4B-DDF6CB345571','Menu_TestRun',0,1,1) +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('0AC1D5B3-9E0B-4AC4-BB24-0A9F3953316C','β',null,'TestRun/Feeding/TailTermApproveList.aspx',7,'81CE1758-5BBC-4709-AF4B-DDF6CB345571','Menu_TestRun',0,1,1) +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('81162C96-2E10-4936-A2AD-B221B7966C85','ǩ',null,'TestRun/Feeding/InspectWanderAboutList.aspx',8,'81CE1758-5BBC-4709-AF4B-DDF6CB345571','Menu_TestRun',0,1,1) +INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('0BF6BC64-8F72-47EA-A5B9-60ACC14619AC','תȫͨ',null,'TestRun/Feeding/InspectWanderAboutAllPassList.aspx',9,'81CE1758-5BBC-4709-AF4B-DDF6CB345571','Menu_TestRun',0,1,1) +--INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Icon,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed)VALUES('0BF6BC64-8F72-47EA-A5B9-60ACC14619AC','ͶԳ',null,'TestRun/Feeding/FeedingRunApplication.aspx',10,'81CE1758-5BBC-4709-AF4B-DDF6CB345571','Menu_TestRun',0,1,1) +go + +--==ͶԳģϢ +if object_id(N'FeedingRun_WorkInspectTemplate',N'U') is not null +drop table dbo.FeedingRun_WorkInspectTemplate +CREATE TABLE dbo.FeedingRun_WorkInspectTemplate( + WorkInspectId varchar(50) NOT NULL,-- + WorkInspectName varchar(500) NULL,-- + Remark nvarchar(150) NULL,--ע + GroupName varchar(50) NULL,-- + AddUser varchar(50) NULL,-- + AddTime datetime NULL,-- + Sort int NULL,-- + CONSTRAINT PK_FeedingRun_WorkInspectTemplate PRIMARY KEY CLUSTERED +( + WorkInspectId ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY] +GO +--==豸ܵϵͳ +delete FeedingRun_WorkInspectTemplate where WorkInspectId='B92C0CE3-F42E-48E9-90A4-8B949459B24E' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='9B01E80A-E6E8-405B-9D14-DB9A68907899' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='A4FA80D2-D39A-4FB6-A9CA-08116B0AEF36' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='3085EB15-1C91-4371-AC4F-459FE1557146' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='CE222946-EA4F-4DB2-A1E1-D98F7BF59DED' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='3EC36453-D235-49C1-ABD3-9A1BDC3ED24E' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='124F2849-CCCC-4589-BF5A-66EDF3CE8548' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='73AAEBD4-B65E-4BD0-9D45-FCD6018CC483' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='E3F13A3C-E3A4-46F8-A6A8-B56D93EEB5F1' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='A40B8BD5-2C39-4811-ABDA-EFE68548B60A' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='DAABBEC3-E010-4FCB-95CC-E633271C432A' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='0EE9EC41-E468-4E78-9358-0903FD24A2A8' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='BE2C3723-B68F-4B61-BD9F-C0662D08D969' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='077EFE01-8FD0-4596-B56D-34A3F177F14B' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='B94CBA06-9D3E-4C3C-BB43-AC9A5A09C253' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='2A32519C-5B9C-4788-AEAD-48551C183F0C' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='D19D7E82-033F-47F0-B7A2-1A33BC341F3D' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='C0B50D95-8487-401D-9C6B-6054B1F85A4C' +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('B92C0CE3-F42E-48E9-90A4-8B949459B24E','豸ܵװɣʩչ淶Ҫ','','豸ܵϵͳ','',GETDATE(),1) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('9B01E80A-E6E8-405B-9D14-DB9A68907899','¡ɣʩչ淶Ҫ','','豸ܵϵͳ','',GETDATE(),2) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('A4FA80D2-D39A-4FB6-A9CA-08116B0AEF36','ĶȱϣӰͶβ','','豸ܵϵͳ','',GETDATE(),3) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('3085EB15-1C91-4371-AC4F-459FE1557146','豸ܵѹϸ','','豸ܵϵͳ','',GETDATE(),4) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('CE222946-EA4F-4DB2-A1E1-D98F7BF59DED','豸ܵѧϴϸ','','豸ܵϵͳ','',GETDATE(),5) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('3EC36453-D235-49C1-ABD3-9A1BDC3ED24E','ϵͳϴɨϸ','','豸ܵϵͳ','',GETDATE(),6) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('124F2849-CCCC-4589-BF5A-66EDF3CE8548','ҵ¯¯ϸ','','豸ܵϵͳ','',GETDATE(),7) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('73AAEBD4-B65E-4BD0-9D45-FCD6018CC483','ҵ¯¯ϸ','','豸ܵϵͳ','',GETDATE(),8) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('E3F13A3C-E3A4-46F8-A6A8-B56D93EEB5F1','ϡɸ߻װϸ','','豸ܵϵͳ','',GETDATE(),9) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('A40B8BD5-2C39-4811-ABDA-EFE68548B60A','ȫϸ񡢴Ͷ״̬','','豸ܵϵͳ','',GETDATE(),10) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('DAABBEC3-E010-4FCB-95CC-E633271C432A','ư尲װȷͶ״̬','','豸ܵϵͳ','',GETDATE(),11) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('0EE9EC41-E468-4E78-9358-0903FD24A2A8','8ä崦ȷλá','','豸ܵϵͳ','',GETDATE(),12) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('BE2C3723-B68F-4B61-BD9F-C0662D08D969','֧ܰװҪ','','豸ܵϵͳ','',GETDATE(),13) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('077EFE01-8FD0-4596-B56D-34A3F177F14B','֧ܵϸ񡢴Ͷ״̬','','豸ܵϵͳ','',GETDATE(),14) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('B94CBA06-9D3E-4C3C-BB43-AC9A5A09C253','ϵͳϸڲѹ£','','豸ܵϵͳ','',GETDATE(),15) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('2A32519C-5B9C-4788-AEAD-48551C183F0C','Գϸ','','豸ܵϵͳ','',GETDATE(),16) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('D19D7E82-033F-47F0-B7A2-1A33BC341F3D','ѭˮϵͳԤĤϸ񣬸ָҪ','','豸ܵϵͳ','',GETDATE(),17) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('C0B50D95-8487-401D-9C6B-6054B1F85A4C','ϵͳԳɣ¶Ѵ','','豸ܵϵͳ','',GETDATE(),18) +go +--==ϵͳ +delete FeedingRun_WorkInspectTemplate where WorkInspectId='1109473C-D1E4-4E9B-8A66-2A298AA86418' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='022A14CF-2496-4E34-9A81-3DDB8337AC84' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='B68A9BFE-F237-4C32-B99B-366717778F0B' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='5829644C-344D-45D7-9A9F-99F9C8B7F637' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='F9563CAD-D5E2-45A5-BF97-BDF2E97FED17' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='B84388E6-FEB5-4F42-AC1A-9260EB6C110F' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='E1242BD0-92D6-4AF2-98B8-FD8FE4690372' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='8A1A24D3-BEDE-47B3-88E4-7E7354AC6243' +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('1109473C-D1E4-4E9B-8A66-2A298AA86418','DZװʩչ淶Ҫ','','ϵͳ','',GETDATE(),19) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('022A14CF-2496-4E34-9A81-3DDB8337AC84','豸ļ̵;ԵѺϸ','','ϵͳ','',GETDATE(),20) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('B68A9BFE-F237-4C32-B99B-366717778F0B','׷ʩԺϸ񡢿ɿ','','ϵͳ','',GETDATE(),21) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('5829644C-344D-45D7-9A9F-99F9C8B7F637','ԿDZԺϸָʾơֵ̬Ժϸ','','ϵͳ','',GETDATE(),22) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('F9563CAD-D5E2-45A5-BF97-BDF2E97FED17','ɢϵͳУ߼ӵصԷϹ涨ӲϵͳҪ','','ϵͳ','',GETDATE(),23) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('B84388E6-FEB5-4F42-AC1A-9260EB6C110F','ɱ߼װõԺϸֵ׼ȷɿ','','ϵͳ','',GETDATE(),24) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('E1242BD0-92D6-4AF2-98B8-FD8FE4690372','ϵͳϸ񡢿ɿ','','ϵͳ','',GETDATE(),25) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('8A1A24D3-BEDE-47B3-88E4-7E7354AC6243','ԶDZԺϸƺϸ','','ϵͳ','',GETDATE(),26) +go +--==ϵͳ +delete FeedingRun_WorkInspectTemplate where WorkInspectId='11FAF5F3-F658-401A-B2DB-62CFF2D1FD69' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='DDB6A90E-699B-4C0D-BBDF-5538EFFE529F' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='AA10911E-24B5-4CD1-8F71-A018D20DF3CA' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='7F8D020F-3C26-4FD9-91CB-39234DBEB08B' +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('11FAF5F3-F658-401A-B2DB-62CFF2D1FD69','ˮ硢DZȿɰֵ֤Ӧ','','ϵͳ','',GETDATE(),27) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('DDB6A90E-699B-4C0D-BBDF-5538EFFE529F','ɰֵ֤Ӧ','','ϵͳ','',GETDATE(),28) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('AA10911E-24B5-4CD1-8F71-A018D20DF3CA','ԭϡȼϼԭϡ֬ȱ룬Ҫָص㡣','','ϵͳ','',GETDATE(),29) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('7F8D020F-3C26-4FD9-91CB-39234DBEB08B','ϵͳ߱ʹ궨ϸ','','ϵͳ','',GETDATE(),30) +go +--==ȫϵͳ +delete FeedingRun_WorkInspectTemplate where WorkInspectId='70A152F1-6990-4689-86B9-CB1AB14CB989' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='4EB2C35C-A6D4-4936-987A-C244621BC69F' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='A423531C-2CDB-4314-A45B-6C28129EDC21' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='57E47D49-F0A1-4073-9CF5-B472F83045E7' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='B4FCB05F-5B31-405A-AFA2-87EBFDA79FBE' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='48DC92A0-9CEC-4613-BF43-21E7193C82EB' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='214C5DFD-A5AB-45F7-81E2-981848CDF110' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='466D5F4E-2AA4-4246-A8B9-D9B2335F7AB4' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='F00B0F0D-97DF-449B-94CC-C586CC2CBF91' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='A80AF744-AD43-494F-BDD2-6873A31AE71E' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='F85C5F64-78EB-42A8-9DD9-1EED976880DF' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='E189A48A-D91E-4D8E-AF71-3A731BEF2FC8' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='4A41BCC6-1EAE-4877-A70A-B59E52BD68E5' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='26D81F27-B1D1-4222-A020-615AE561C96B' +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('70A152F1-6990-4689-86B9-CB1AB14CB989','ˮϵͳԺϸ񣬴Ͷ״̬','','ȫϵͳ','',GETDATE(),31) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('4EB2C35C-A6D4-4936-987A-C244621BC69F','ĭɷ̼ۡԺϸ񣬴Ͷ״̬','','ȫϵͳ','',GETDATE(),32) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('A423531C-2CDB-4314-A45B-6C28129EDC21','ȼ屨ж屨ֱϵͳȵԺϸ񣬴Ͷ״̬','','ȫϵͳ','',GETDATE(),33) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('57E47D49-F0A1-4073-9CF5-B472F83045E7','HSEϣƶӦİȫʩͣ¹Ԥ','','ȫϵͳ','',GETDATE(),34) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('B4FCB05F-5B31-405A-AFA2-87EBFDA79FBE','ƶȡƶȡƶȵȰȫලƶѽ','','ȫϵͳ','',GETDATE(),35) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('48DC92A0-9CEC-4613-BF43-21E7193C82EB','·ͨб־־ʾ־ȫԳѻ','','ȫϵͳ','',GETDATE(),36) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('214C5DFD-A5AB-45F7-81E2-981848CDF110','λġѱ룬˻á','','ȫϵͳ','',GETDATE(),37) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('466D5F4E-2AA4-4246-A8B9-D9B2335F7AB4','Ȼʩʵйϰ','','ȫϵͳ','',GETDATE(),38) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('F00B0F0D-97DF-449B-94CC-C586CC2CBF91','ֳվѽоȻȣʵ24 Сʱֵࡣ','','ȫϵͳ','',GETDATE(),39) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('A80AF744-AD43-494F-BDD2-6873A31AE71E','ϵͳɣʱʩҪ','','ȫϵͳ','',GETDATE(),40) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('F85C5F64-78EB-42A8-9DD9-1EED976880DF','äר˸𣬽ж̨̬ʣֳơ','','ȫϵͳ','',GETDATE(),41) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('E189A48A-D91E-4D8E-AF71-3A731BEF2FC8','ֳʵ֯Աͨߵȣ','','ȫϵͳ','',GETDATE(),42) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('4A41BCC6-1EAE-4877-A70A-B59E52BD68E5','·ͨ޹','','ȫϵͳ','',GETDATE(),43) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('26D81F27-B1D1-4222-A020-615AE561C96B','ϴװѾ߱Ͷ','','ȫϵͳ','',GETDATE(),44) +go +--== +delete FeedingRun_WorkInspectTemplate where WorkInspectId='7AFC8355-1216-4179-BCDE-8BD1E7001D58' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='955DD47A-DE0C-46B5-B92E-849688B51EF0' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='5EC53FA6-87D3-4D1A-8212-75D011D1DEFB' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='B2DEC6CE-B3CE-414E-BEED-9DC1CB263837' +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('7AFC8355-1216-4179-BCDE-8BD1E7001D58','лҡѽƶȣȷ','','','',GETDATE(),45) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('955DD47A-DE0C-46B5-B92E-849688B51EF0','ʩԼ׼ҺѱãҪ','','','',GETDATE(),46) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('5EC53FA6-87D3-4D1A-8212-75D011D1DEFB','ȷߡʵ','','','',GETDATE(),47) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('B2DEC6CE-B3CE-414E-BEED-9DC1CB263837','ģģ','','','',GETDATE(),48) +go +--==֯ԱͨѶ涨 +delete FeedingRun_WorkInspectTemplate where WorkInspectId='9DE2BBE1-E626-4BF6-92F9-A3AF50F8BFEF' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='2EC0EF93-1D55-46EB-9596-F891FD4A7937' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='72B4AF8C-9467-488C-A48D-0D66BD877F1B' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='07DBD283-DD4D-4009-B1CA-CE7514BDA749' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='60AEE8E8-FFEB-4DA6-AFE0-AC273926E47D' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='A326DEF3-8A7F-40A2-B162-156DB80A9B42' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='332E6B45-B972-4A8E-B22C-5213ADA2E4E7' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='A99B4DE2-6647-4AD5-8238-D7E2E6C5ACED' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='F29A52BF-3209-4180-BE6F-1F20508B6AF2' +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('9DE2BBE1-E626-4BF6-92F9-A3AF50F8BFEF','Գָ֯ѾԱ룬ѰҪϸڡ','','֯ԱͨѶ涨','',GETDATE(),49) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('2EC0EF93-1D55-46EB-9596-F891FD4A7937','ԳϵͳС','','֯ԱͨѶ涨','',GETDATE(),50) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('72B4AF8C-9467-488C-A48D-0D66BD877F1B','װԱѾȫ','','֯ԱͨѶ涨','',GETDATE(),51) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('07DBD283-DD4D-4009-B1CA-CE7514BDA749','ָϵͳͨѶͨ','','֯ԱͨѶ涨','',GETDATE(),52) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('60AEE8E8-FFEB-4DA6-AFE0-AC273926E47D','λֱͨ绰ѿͨá','','֯ԱͨѶ涨','',GETDATE(),53) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('A326DEF3-8A7F-40A2-B162-156DB80A9B42','ȡ𾯡ȵ绰ɿá','','֯ԱͨѶ涨','',GETDATE(),54) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('332E6B45-B972-4A8E-B22C-5213ADA2E4E7','ߵ绰','','֯ԱͨѶ涨','',GETDATE(),55) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('A99B4DE2-6647-4AD5-8238-D7E2E6C5ACED','Գ涨ȫ̵̡ȼ׼䷢','','֯ԱͨѶ涨','',GETDATE(),56) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('F29A52BF-3209-4180-BE6F-1F20508B6AF2','λ¼Գרñ׼ȫ','','֯ԱͨѶ涨','',GETDATE(),57) +go +--==ˡڱ +delete FeedingRun_WorkInspectTemplate where WorkInspectId='4BC591DA-1188-45FA-884C-AA49D71B9396' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='51F178FB-E61F-4853-B1A4-931345C09335' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='10396FC3-AB9B-4E40-99E1-61D3FD388C2B' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='2CBB0275-90FA-48E9-83DC-4862E8F8E382' +delete FeedingRun_WorkInspectTemplate where WorkInspectId='BAD731C2-2AC3-40E4-A3AA-69FFD13F8C0B' +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('4BC591DA-1188-45FA-884C-AA49D71B9396','˶ɣΧȷ','','ˡڱ','',GETDATE(),58) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('51F178FB-E61F-4853-B1A4-931345C09335','硢Աϸڡ','','ˡڱ','',GETDATE(),59) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('10396FC3-AB9B-4E40-99E1-61D3FD388C2B','װʵ','','ˡڱ','',GETDATE(),60) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('2CBB0275-90FA-48E9-83DC-4862E8F8E382','౸Ʒרùߵѱ롣','','ˡڱ','',GETDATE(),61) +INSERT INTO dbo.FeedingRun_WorkInspectTemplate(WorkInspectId,WorkInspectName,Remark,GroupName,AddUser,AddTime,Sort) +VALUES('BAD731C2-2AC3-40E4-A3AA-69FFD13F8C0B','ڷʵ','','ˡڱ','',GETDATE(),62) +go + +--== +if object_id(N'FeedingRun_SubInspectTerm',N'U') is not null +drop table dbo.FeedingRun_SubInspectTerm +CREATE TABLE dbo.FeedingRun_SubInspectTerm( + SubInspectId varchar(50) NOT NULL,-- + ProjectId varchar(50) NULL,--Ŀ + InstallationId varchar(50) NULL,--װ + DriverCharge varchar(50) null,--װÿ + DrivingManager varchar(50) null,-- + ProjectManager varchar(50) null,--Ŀ + DriverChargeIsAllPass int NULL,--װÿǷͨ0/null:δͨ 1:ͨ + DrivingManagerIsAllPass int NULL,--Ƿͨ0/null:δͨ 1:ͨ + ProjectManagerIsAllPass int NULL,--ĿǷͨ0/null:δͨ 1:ͨ + DriverChargeAllPassData datetime null,--װÿͨ + DrivingManagerAllPassData datetime null,--ͨ + ProjectManagerAllPassData datetime null,--Ŀͨ + InspectionIsAllPass int NULL,--0/null:δͨ 1:ͨ + WanderIsComplete int null,--תǷȫͨ0:δͨ1:ͨ + WanderCompleteData datetime null,--ת + IsUnifyWanderAbout int null,--Ƿͳһת0:1: + UnifyWanderAboutData datetime null,--ͳһתʱ + UnifyWanderAboutOpinion varchar(max) null,--ͳһתע + InspectIsClose int null,--Ƿر0:δر1:ѹر + InspectCloseData datetime null,--񵥹ر + InspectTime datetime NULL,--ʱ + AddUser varchar(50) NULL,-- + AddTime datetime NULL,-- + CONSTRAINT PK_FeedingRun_SubInspectTerm PRIMARY KEY CLUSTERED +( + SubInspectId ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY] +GO + +--== +if object_id(N'FeedingRun_SubInspectTermItem',N'U') is not null +drop table dbo.FeedingRun_SubInspectTermItem +CREATE TABLE dbo.FeedingRun_SubInspectTermItem( + TermItemId varchar(50) NOT NULL,-- + ProjectId varchar(50) NULL,--Ŀ + InstallationId varchar(50) NULL,--װ + SubInspectId varchar(50) NULL,-- + GroupName varchar(50) NULL,-- + WorkInspectId varchar(50) NOT NULL,--ģ + WorkInspectName varchar(500) NULL,-- + InspectedUser varchar(50) NULL,-- + InspectionResults int NULL,--0:δͨ 1:ͨ + InspectionIllustrate varchar(200) NULL,--˵ + DriverCharge varchar(50) null,--װÿ + DrivingManager varchar(50) null,-- + ProjectManager varchar(50) null,--Ŀ + DriverChargeIsPass int NULL,--װÿǷͨ0/null:δͨ 1:ͨ + DrivingManagerIsPass int NULL,--Ƿͨ0/null:δͨ 1:ͨ + ProjectManagerIsPass int NULL,--ĿǷͨ0/null:δͨ 1:ͨ + DriverChargeRemark varchar(1000) NULL,--װÿ˱ע + DrivingManagerRemark varchar(1000) NULL,--ע + ProjectManagerRemark varchar(1000) NULL,--Ŀע + Remark varchar(200) NULL,--ע + AddUser varchar(50) NULL,-- + AddTime datetime NULL,-- + Sort int NULL,-- + CONSTRAINT PK_FeedingRun_SubInspectTermItem PRIMARY KEY CLUSTERED +( + TermItemId ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY] +GO + +--==β +if object_id(N'FeedingRun_InspectTailTerm',N'U') is not null +drop table dbo.FeedingRun_InspectTailTerm +CREATE TABLE dbo.FeedingRun_InspectTailTerm( + TailTermId varchar(50) NOT NULL,-- + ProjectId varchar(50) NULL,--Ŀ + ProjectName varchar(50) NULL,--Ŀ + TailTermCode varchar(50) NULL,--Ѳ + ConstructionUnit varchar(50) NULL,--ʩλ + SubInspectId varchar(50) NULL,-- + TermItemId varchar(50) NULL,-- + QuestionDesc varchar(max) NULL,-- + RectifyOpinion varchar(max) NULL,-- + RectifyTime datetime NULL,--βʱ + InspectUser varchar(50) NULL,-- + HandleUser varchar(50) NULL,-- + ApproveUser varchar(50) NULL,-- + AdjustCompleteTime datetime NULL,--Ҫʱ + ApproveState int NULL,--0:ύ1:2:˻3:˻4:5:ͨ + AddUser varchar(50) NULL,-- + AddTime datetime NULL,-- + CONSTRAINT PK_FeedingRun_InspectTailTerm PRIMARY KEY CLUSTERED +( + TailTermId ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY] +GO + +--==/˼¼ +if object_id(N'FeedingRun_InspectTermApproveRecords',N'U') is not null +drop table dbo.FeedingRun_InspectTermApproveRecords +CREATE TABLE dbo.FeedingRun_InspectTermApproveRecords( + InspectTermId varchar(50) NOT NULL,-- + ProjectId varchar(50) NULL,--Ŀ + TermItemId varchar(50) NULL,-- + TailTermId varchar(50) NULL,--β + ApproveOpinion varchar(max) NULL,-- + ApproveTime datetime NULL,--ʱ + ApproveUser varchar(50) NULL,-- + ApproveType int NULL,--¼0:¼1:˼¼ + ApproveState int NULL,--0:˻1:ͨ + AddUser varchar(50) NULL,-- + AddTime datetime NULL,-- + CONSTRAINT PK_FeedingRun_InspectTermApproveRecords PRIMARY KEY CLUSTERED +( + InspectTermId ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY] +GO \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/ErrLog.txt b/SGGL/FineUIPro.Web/ErrLog.txt index e69de29b..f7b0779a 100644 --- a/SGGL/FineUIPro.Web/ErrLog.txt +++ b/SGGL/FineUIPro.Web/ErrLog.txt @@ -0,0 +1,261 @@ + +错误信息开始=====> +错误类型:HttpCompileException +错误信息:e:\工作\五环施工平台\CNCEC_SUBQHSE_WUHUAN\SGGL\FineUIPro.Web\ZHGL\TestRunPerformance\TestRunMonthSummaryReport.aspx(24): error CS1061: “ASP.zhgl_testrunperformance_testrunmonthsummaryreport_aspx”不包含“TextBox_TextChanged”的定义,并且找不到可接受类型为“ASP.zhgl_testrunperformance_testrunmonthsummaryreport_aspx”的第一个参数的扩展方法“TextBox_TextChanged”(是否缺少 using 指令或程序集引用?) +错误堆栈: + 在 System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) + 在 System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) + 在 System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) + 在 System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFound) + 在 System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp) + 在 System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) + 在 System.Web.UI.PageHandlerFactory.GetHandler(HttpContext context, String requestType, String virtualPath, String path) + 在 System.Web.HttpApplication.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() + 在 System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) + 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +出错时间:03/25/2024 09:28:04 +出错文件:http://localhost:8579/ZHGL/TestRunPerformance/TestRunMonthSummaryReport.aspx +IP地址:::1 + +出错时间:03/25/2024 09:28:04 + + +错误信息开始=====> +错误类型:HttpException +错误信息:文件“/ZHGL/TestRunPerformance/TestRunMonthSummaryReportEdit.aspx”不存在。 +错误堆栈: + 在 System.Web.UI.Util.CheckVirtualFileExists(VirtualPath virtualPath) + 在 System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) + 在 System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate) + 在 System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFound) + 在 System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp) + 在 System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) + 在 System.Web.UI.PageHandlerFactory.GetHandler(HttpContext context, String requestType, String virtualPath, String path) + 在 System.Web.HttpApplication.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() + 在 System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) + 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +出错时间:03/25/2024 09:34:30 +出错文件:http://localhost:8579/ZHGL/TestRunPerformance/TestRunMonthSummaryReportEdit.aspx +IP地址:::1 + +出错时间:03/25/2024 09:34:30 + + +错误信息开始=====> +错误类型:ArgumentException +错误信息:提供的 URI 方案“http”无效,应为“https”。 +参数名: via +错误堆栈: + 在 System.ServiceModel.Channels.TransportChannelFactory`1.ValidateScheme(Uri via) + 在 System.ServiceModel.Channels.HttpChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via) + 在 System.ServiceModel.Channels.HttpsChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via) + 在 System.ServiceModel.Channels.HttpsChannelFactory`1.OnCreateChannelCore(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.HttpChannelFactory`1.OnCreateChannel(EndpointAddress remoteAddress, Uri via) + 在 System.ServiceModel.Channels.ChannelFactoryBase`1.InternalCreateChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.ChannelFactoryBase`1.CreateChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.ServiceChannelFactory.ServiceChannelFactoryOverRequest.CreateInnerChannelBinder(EndpointAddress to, Uri via) + 在 System.ServiceModel.Channels.ServiceChannelFactory.CreateServiceChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.ServiceChannelFactory.CreateChannel(Type channelType, EndpointAddress address, Uri via) + 在 System.ServiceModel.ChannelFactory`1.CreateChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.ChannelFactory`1.CreateChannel() + 在 System.ServiceModel.ClientBase`1.CreateChannel() + 在 System.ServiceModel.ClientBase`1.CreateChannelInternal() + 在 System.ServiceModel.ClientBase`1.get_Channel() + 在 BLL.CNCECHSSEWebService.getSupervise_SubUnitReport() 位置 E:\工作\五环施工平台\CNCEC_SUBQHSE_WUHUAN\SGGL\BLL\WebService\CNCECHSSEWebService.cs:行号 2180 +出错时间:03/25/2024 12:20:30 +出错时间:03/25/2024 12:20:30 + + +错误信息开始=====> +错误类型:ArgumentException +错误信息:提供的 URI 方案“http”无效,应为“https”。 +参数名: via +错误堆栈: + 在 System.ServiceModel.Channels.TransportChannelFactory`1.ValidateScheme(Uri via) + 在 System.ServiceModel.Channels.HttpChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via) + 在 System.ServiceModel.Channels.HttpsChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via) + 在 System.ServiceModel.Channels.HttpsChannelFactory`1.OnCreateChannelCore(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.HttpChannelFactory`1.OnCreateChannel(EndpointAddress remoteAddress, Uri via) + 在 System.ServiceModel.Channels.ChannelFactoryBase`1.InternalCreateChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.ChannelFactoryBase`1.CreateChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.ServiceChannelFactory.ServiceChannelFactoryOverRequest.CreateInnerChannelBinder(EndpointAddress to, Uri via) + 在 System.ServiceModel.Channels.ServiceChannelFactory.CreateServiceChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.ServiceChannelFactory.CreateChannel(Type channelType, EndpointAddress address, Uri via) + 在 System.ServiceModel.ChannelFactory`1.CreateChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.ChannelFactory`1.CreateChannel() + 在 System.ServiceModel.ClientBase`1.CreateChannel() + 在 System.ServiceModel.ClientBase`1.CreateChannelInternal() + 在 System.ServiceModel.ClientBase`1.get_Channel() + 在 BLL.CNCECHSSEWebService.getCheck_CheckInfo_Table8Item() 位置 E:\工作\五环施工平台\CNCEC_SUBQHSE_WUHUAN\SGGL\BLL\WebService\CNCECHSSEWebService.cs:行号 2045 +出错时间:03/25/2024 12:20:30 +出错时间:03/25/2024 12:20:30 + + +错误信息开始=====> +错误类型:ArgumentException +错误信息:提供的 URI 方案“http”无效,应为“https”。 +参数名: via +错误堆栈: + 在 System.ServiceModel.Channels.TransportChannelFactory`1.ValidateScheme(Uri via) + 在 System.ServiceModel.Channels.HttpChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via) + 在 System.ServiceModel.Channels.HttpsChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via) + 在 System.ServiceModel.Channels.HttpsChannelFactory`1.OnCreateChannelCore(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.HttpChannelFactory`1.OnCreateChannel(EndpointAddress remoteAddress, Uri via) + 在 System.ServiceModel.Channels.ChannelFactoryBase`1.InternalCreateChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.ChannelFactoryBase`1.CreateChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.ServiceChannelFactory.ServiceChannelFactoryOverRequest.CreateInnerChannelBinder(EndpointAddress to, Uri via) + 在 System.ServiceModel.Channels.ServiceChannelFactory.CreateServiceChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.ServiceChannelFactory.CreateChannel(Type channelType, EndpointAddress address, Uri via) + 在 System.ServiceModel.ChannelFactory`1.CreateChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.ChannelFactory`1.CreateChannel() + 在 System.ServiceModel.ClientBase`1.CreateChannel() + 在 System.ServiceModel.ClientBase`1.CreateChannelInternal() + 在 System.ServiceModel.ClientBase`1.get_Channel() + 在 BLL.CNCECHSSEWebService.getCheck_CheckRectify() 位置 E:\工作\五环施工平台\CNCEC_SUBQHSE_WUHUAN\SGGL\BLL\WebService\CNCECHSSEWebService.cs:行号 1941 +出错时间:03/25/2024 12:20:30 +出错时间:03/25/2024 12:20:30 + + +错误信息开始=====> +错误类型:ArgumentException +错误信息:提供的 URI 方案“http”无效,应为“https”。 +参数名: via +错误堆栈: + 在 System.ServiceModel.Channels.TransportChannelFactory`1.ValidateScheme(Uri via) + 在 System.ServiceModel.Channels.HttpChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via) + 在 System.ServiceModel.Channels.HttpsChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via) + 在 System.ServiceModel.Channels.HttpsChannelFactory`1.OnCreateChannelCore(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.HttpChannelFactory`1.OnCreateChannel(EndpointAddress remoteAddress, Uri via) + 在 System.ServiceModel.Channels.ChannelFactoryBase`1.InternalCreateChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.ChannelFactoryBase`1.CreateChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.ServiceChannelFactory.ServiceChannelFactoryOverRequest.CreateInnerChannelBinder(EndpointAddress to, Uri via) + 在 System.ServiceModel.Channels.ServiceChannelFactory.CreateServiceChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.ServiceChannelFactory.CreateChannel(Type channelType, EndpointAddress address, Uri via) + 在 System.ServiceModel.ChannelFactory`1.CreateChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.ChannelFactory`1.CreateChannel() + 在 System.ServiceModel.ClientBase`1.CreateChannel() + 在 System.ServiceModel.ClientBase`1.CreateChannelInternal() + 在 System.ServiceModel.ClientBase`1.get_Channel() + 在 BLL.CNCECHSSEWebService.getInformation_UrgeReport() 位置 E:\工作\五环施工平台\CNCEC_SUBQHSE_WUHUAN\SGGL\BLL\WebService\CNCECHSSEWebService.cs:行号 1883 +出错时间:03/25/2024 12:20:30 +出错时间:03/25/2024 12:20:30 + + +错误信息开始=====> +错误类型:ArgumentException +错误信息:提供的 URI 方案“http”无效,应为“https”。 +参数名: via +错误堆栈: + 在 System.ServiceModel.Channels.TransportChannelFactory`1.ValidateScheme(Uri via) + 在 System.ServiceModel.Channels.HttpChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via) + 在 System.ServiceModel.Channels.HttpsChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via) + 在 System.ServiceModel.Channels.HttpsChannelFactory`1.OnCreateChannelCore(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.HttpChannelFactory`1.OnCreateChannel(EndpointAddress remoteAddress, Uri via) + 在 System.ServiceModel.Channels.ChannelFactoryBase`1.InternalCreateChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.ChannelFactoryBase`1.CreateChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.ServiceChannelFactory.ServiceChannelFactoryOverRequest.CreateInnerChannelBinder(EndpointAddress to, Uri via) + 在 System.ServiceModel.Channels.ServiceChannelFactory.CreateServiceChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.ServiceChannelFactory.CreateChannel(Type channelType, EndpointAddress address, Uri via) + 在 System.ServiceModel.ChannelFactory`1.CreateChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.ChannelFactory`1.CreateChannel() + 在 System.ServiceModel.ClientBase`1.CreateChannel() + 在 System.ServiceModel.ClientBase`1.CreateChannelInternal() + 在 System.ServiceModel.ClientBase`1.get_Channel() + 在 BLL.CNCECHSSEWebService.getSupervise_SubUnitReport() 位置 E:\工作\五环施工平台\CNCEC_SUBQHSE_WUHUAN\SGGL\BLL\WebService\CNCECHSSEWebService.cs:行号 2180 +出错时间:03/25/2024 14:20:29 +出错时间:03/25/2024 14:20:29 + + +错误信息开始=====> +错误类型:ArgumentException +错误信息:提供的 URI 方案“http”无效,应为“https”。 +参数名: via +错误堆栈: + 在 System.ServiceModel.Channels.TransportChannelFactory`1.ValidateScheme(Uri via) + 在 System.ServiceModel.Channels.HttpChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via) + 在 System.ServiceModel.Channels.HttpsChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via) + 在 System.ServiceModel.Channels.HttpsChannelFactory`1.OnCreateChannelCore(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.HttpChannelFactory`1.OnCreateChannel(EndpointAddress remoteAddress, Uri via) + 在 System.ServiceModel.Channels.ChannelFactoryBase`1.InternalCreateChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.ChannelFactoryBase`1.CreateChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.ServiceChannelFactory.ServiceChannelFactoryOverRequest.CreateInnerChannelBinder(EndpointAddress to, Uri via) + 在 System.ServiceModel.Channels.ServiceChannelFactory.CreateServiceChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.ServiceChannelFactory.CreateChannel(Type channelType, EndpointAddress address, Uri via) + 在 System.ServiceModel.ChannelFactory`1.CreateChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.ChannelFactory`1.CreateChannel() + 在 System.ServiceModel.ClientBase`1.CreateChannel() + 在 System.ServiceModel.ClientBase`1.CreateChannelInternal() + 在 System.ServiceModel.ClientBase`1.get_Channel() + 在 BLL.CNCECHSSEWebService.getCheck_CheckInfo_Table8Item() 位置 E:\工作\五环施工平台\CNCEC_SUBQHSE_WUHUAN\SGGL\BLL\WebService\CNCECHSSEWebService.cs:行号 2045 +出错时间:03/25/2024 14:20:29 +出错时间:03/25/2024 14:20:29 + + +错误信息开始=====> +错误类型:ArgumentException +错误信息:提供的 URI 方案“http”无效,应为“https”。 +参数名: via +错误堆栈: + 在 System.ServiceModel.Channels.TransportChannelFactory`1.ValidateScheme(Uri via) + 在 System.ServiceModel.Channels.HttpChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via) + 在 System.ServiceModel.Channels.HttpsChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via) + 在 System.ServiceModel.Channels.HttpsChannelFactory`1.OnCreateChannelCore(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.HttpChannelFactory`1.OnCreateChannel(EndpointAddress remoteAddress, Uri via) + 在 System.ServiceModel.Channels.ChannelFactoryBase`1.InternalCreateChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.ChannelFactoryBase`1.CreateChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.ServiceChannelFactory.ServiceChannelFactoryOverRequest.CreateInnerChannelBinder(EndpointAddress to, Uri via) + 在 System.ServiceModel.Channels.ServiceChannelFactory.CreateServiceChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.ServiceChannelFactory.CreateChannel(Type channelType, EndpointAddress address, Uri via) + 在 System.ServiceModel.ChannelFactory`1.CreateChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.ChannelFactory`1.CreateChannel() + 在 System.ServiceModel.ClientBase`1.CreateChannel() + 在 System.ServiceModel.ClientBase`1.CreateChannelInternal() + 在 System.ServiceModel.ClientBase`1.get_Channel() + 在 BLL.CNCECHSSEWebService.getCheck_CheckRectify() 位置 E:\工作\五环施工平台\CNCEC_SUBQHSE_WUHUAN\SGGL\BLL\WebService\CNCECHSSEWebService.cs:行号 1941 +出错时间:03/25/2024 14:20:29 +出错时间:03/25/2024 14:20:29 + + +错误信息开始=====> +错误类型:ArgumentException +错误信息:提供的 URI 方案“http”无效,应为“https”。 +参数名: via +错误堆栈: + 在 System.ServiceModel.Channels.TransportChannelFactory`1.ValidateScheme(Uri via) + 在 System.ServiceModel.Channels.HttpChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via) + 在 System.ServiceModel.Channels.HttpsChannelFactory`1.ValidateCreateChannelParameters(EndpointAddress remoteAddress, Uri via) + 在 System.ServiceModel.Channels.HttpsChannelFactory`1.OnCreateChannelCore(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.HttpChannelFactory`1.OnCreateChannel(EndpointAddress remoteAddress, Uri via) + 在 System.ServiceModel.Channels.ChannelFactoryBase`1.InternalCreateChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.ChannelFactoryBase`1.CreateChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.ServiceChannelFactory.ServiceChannelFactoryOverRequest.CreateInnerChannelBinder(EndpointAddress to, Uri via) + 在 System.ServiceModel.Channels.ServiceChannelFactory.CreateServiceChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.Channels.ServiceChannelFactory.CreateChannel(Type channelType, EndpointAddress address, Uri via) + 在 System.ServiceModel.ChannelFactory`1.CreateChannel(EndpointAddress address, Uri via) + 在 System.ServiceModel.ChannelFactory`1.CreateChannel() + 在 System.ServiceModel.ClientBase`1.CreateChannel() + 在 System.ServiceModel.ClientBase`1.CreateChannelInternal() + 在 System.ServiceModel.ClientBase`1.get_Channel() + 在 BLL.CNCECHSSEWebService.getInformation_UrgeReport() 位置 E:\工作\五环施工平台\CNCEC_SUBQHSE_WUHUAN\SGGL\BLL\WebService\CNCECHSSEWebService.cs:行号 1883 +出错时间:03/25/2024 14:20:29 +出错时间:03/25/2024 14:20:30 + + +错误信息开始=====> +错误类型:HttpException +错误信息:找到多个具有相同 ID“ftpl_efe04d84-3138-4a9f-b1fc-16eb8af69df5_5”的控件。FindControl 要求控件具有唯一的 ID。 +错误堆栈: + 在 System.Web.UI.Control.FillNamedControlsTable(Control namingContainer, ControlCollection controls) + 在 System.Web.UI.Control.FindControl(String id, Int32 pathOffset) + 在 System.Web.UI.Control.FindControl(String id, Int32 pathOffset) + 在 System.Web.UI.Control.FindControl(String id, Int32 pathOffset) + 在 System.Web.UI.Page.FindControl(String id) + 在 System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad) + 在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +出错时间:03/26/2024 10:58:48 +出错文件:http://localhost:8579/HSSE/InformationProject/CreateLawRegulationIdentify.aspx?LawRegulationIds= +IP地址:::1 +操作人员:JT + +出错时间:03/26/2024 10:58:48 + diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj index 8a009968..64eb053d 100644 --- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj +++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj @@ -1801,6 +1801,23 @@ + + + + + + + + + + + + + + + + + @@ -2070,6 +2087,7 @@ + @@ -16194,6 +16212,125 @@ FeedingTestRunEdit.aspx + + FeedingRunApplication.aspx + ASPXCodeBehind + + + FeedingRunApplication.aspx + + + InspectTailTermEdit.aspx + ASPXCodeBehind + + + InspectTailTermEdit.aspx + + + InspectTailTermList.aspx + ASPXCodeBehind + + + InspectTailTermList.aspx + + + InspectTemplate.aspx + ASPXCodeBehind + + + InspectTemplate.aspx + + + InspectTemplateEdit.aspx + ASPXCodeBehind + + + InspectTemplateEdit.aspx + + + InspectWanderAboutAllPass.aspx + ASPXCodeBehind + + + InspectWanderAboutAllPass.aspx + + + InspectWanderAboutAllPassList.aspx + ASPXCodeBehind + + + InspectWanderAboutAllPassList.aspx + + + InspectWanderAboutConfirm.aspx + ASPXCodeBehind + + + InspectWanderAboutConfirm.aspx + + + InspectWanderAboutList.aspx + ASPXCodeBehind + + + InspectWanderAboutList.aspx + + + SelectTailTermList.aspx + ASPXCodeBehind + + + SelectTailTermList.aspx + + + SubInspectTerm.aspx + ASPXCodeBehind + + + SubInspectTerm.aspx + + + SubInspectTermEdit.aspx + ASPXCodeBehind + + + SubInspectTermEdit.aspx + + + SubWorkInspect.aspx + ASPXCodeBehind + + + SubWorkInspect.aspx + + + TailTermApprove.aspx + ASPXCodeBehind + + + TailTermApprove.aspx + + + TailTermApproveList.aspx + ASPXCodeBehind + + + TailTermApproveList.aspx + + + TailTermHandle.aspx + ASPXCodeBehind + + + TailTermHandle.aspx + + + TailTermHandleList.aspx + ASPXCodeBehind + + + TailTermHandleList.aspx + Feedback.aspx ASPXCodeBehind @@ -18077,6 +18214,13 @@ TestRunMonthSummaryReport.aspx + + TestRunMonthSummaryReportEdit.aspx + ASPXCodeBehind + + + TestRunMonthSummaryReportEdit.aspx + TestRunPerformanceMonthReport.aspx ASPXCodeBehind diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user index 9e91deff..63ca13cc 100644 --- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user +++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user @@ -1,7 +1,7 @@  - Debug|Any CPU + Release|Any CPU true false diff --git a/SGGL/FineUIPro.Web/HSSE/InformationProject/LawRegulationIdentifyEdit.aspx b/SGGL/FineUIPro.Web/HSSE/InformationProject/LawRegulationIdentifyEdit.aspx index 70e761cc..5caa030b 100644 --- a/SGGL/FineUIPro.Web/HSSE/InformationProject/LawRegulationIdentifyEdit.aspx +++ b/SGGL/FineUIPro.Web/HSSE/InformationProject/LawRegulationIdentifyEdit.aspx @@ -48,7 +48,7 @@ - + diff --git a/SGGL/FineUIPro.Web/HSSE/InformationProject/LawRegulationIdentifyEdit.aspx.designer.cs b/SGGL/FineUIPro.Web/HSSE/InformationProject/LawRegulationIdentifyEdit.aspx.designer.cs index 3705582d..fc68d211 100644 --- a/SGGL/FineUIPro.Web/HSSE/InformationProject/LawRegulationIdentifyEdit.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/HSSE/InformationProject/LawRegulationIdentifyEdit.aspx.designer.cs @@ -109,7 +109,7 @@ namespace FineUIPro.Web.HSSE.InformationProject { /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::FineUIPro.HiddenField hdLawRegulationId; + protected global::FineUIPro.TextBox hdLawRegulationId; /// /// labNumber 控件。 diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutList.aspx.cs index d15b1ba0..e73d7000 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutList.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/InspectWanderAboutList.aspx.cs @@ -37,7 +37,7 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun rootNode.ToolTip = ""; rootNode.EnableClickEvent = true; this.tvControlItem.Nodes.Add(rootNode); - var inspectTerms = Funs.DB.PreRun_SubInspectTerm.Where(x => (x.Subcontractor == this.CurrUser.UserId && x.InspectionIsAllPass == 1) || (x.Contractor == this.CurrUser.UserId && x.ContractorIsAllPass == 1) || (x.Supervision == this.CurrUser.UserId && x.SupervisionIsAllPass == 1) || (x.Owner == this.CurrUser.UserId && x.OwnerIsAllPass == 1)).ToList(); + var inspectTerms = Funs.DB.PreRun_SubInspectTerm.Where(x => (x.Subcontractor == this.CurrUser.UserId && x.InspectionIsAllPass == 1) || (x.Contractor == this.CurrUser.UserId && x.InspectionIsAllPass == 1) || (x.Supervision == this.CurrUser.UserId && x.InspectionIsAllPass == 1) || (x.Owner == this.CurrUser.UserId && x.InspectionIsAllPass == 1)).ToList(); if (inspectTerms.Count == 0) return; var subSystemIds = inspectTerms.ConvertAll(x => x.SubSystemId); var workPackIds = inspectTerms.ConvertAll(x => x.WorkPackId); diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubInspectTerm.aspx b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubInspectTerm.aspx index 494cbc42..34dd7003 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubInspectTerm.aspx +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/SubInspectTerm.aspx @@ -169,6 +169,7 @@ var valid = true, modifiedData = grid1.getMergedData(); $.each(modifiedData, function (index, rowData) { + debugger; if (rowData.status === 'deleted') { return true; // continue } diff --git a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/TailTermHandleList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/TailTermHandleList.aspx.cs index 1dd36e2f..032a9492 100644 --- a/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/TailTermHandleList.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/TailTermHandleList.aspx.cs @@ -38,12 +38,12 @@ namespace FineUIPro.Web.TestRun.BeforeTestRun rootNode.EnableClickEvent = true; this.tvControlItem.Nodes.Add(rootNode); var termIds = new List(); - var tailTerms = Funs.DB.PreRun_InspectTailTerm.Where(x => x.HandleUser == this.CurrUser.UserId).ToList(); + var tailTerms = Funs.DB.PreRun_InspectTailTerm.Where(x => x.HandleUser == this.CurrUser.UserId && x.ProjectId == this.CurrUser.LoginProjectId).ToList(); if (tailTerms.Count > 0) { termIds = tailTerms.ConvertAll(x => x.TermItemId); } - var userSubInspects = Funs.DB.PreRun_SubInspectTermItem.Where(x => termIds.Contains(x.TermItemId)).ToList(); + var userSubInspects = Funs.DB.PreRun_SubInspectTermItem.Where(x => termIds.Contains(x.TermItemId) && x.ProjectId == this.CurrUser.LoginProjectId).ToList(); if (userSubInspects.Count == 0) return; var subSystemIds = userSubInspects.ConvertAll(x => x.SubSystemId); var workPackIds = userSubInspects.ConvertAll(x => x.WorkPackId); diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/FeedingRunApplication.aspx b/SGGL/FineUIPro.Web/TestRun/Feeding/FeedingRunApplication.aspx new file mode 100644 index 00000000..b2117977 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/FeedingRunApplication.aspx @@ -0,0 +1,134 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="FeedingRunApplication.aspx.cs" Inherits="FineUIPro.Web.TestRun.Feeding.FeedingRunApplication" %> + + + + + + + + + 投料试车申请 + + + +
+ + + + + + + + + + + + + + + <%----%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/FeedingRunApplication.aspx.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/FeedingRunApplication.aspx.cs new file mode 100644 index 00000000..f346ae2e --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/FeedingRunApplication.aspx.cs @@ -0,0 +1,450 @@ +using BLL; +using NPOI.SS.UserModel; +using NPOI.SS.Util; +using NPOI.XSSF.UserModel; +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; + +namespace FineUIPro.Web.TestRun.Feeding +{ + public partial class FeedingRunApplication : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + InitTreeMenu(); + } + } + + + #region 数加载 + + /// + /// 加载树 + /// + private void InitTreeMenu() + { + this.tvControlItem.Nodes.Clear(); + TreeNode rootNode = new TreeNode(); + rootNode.Text = "检查表"; + rootNode.NodeID = "0"; + rootNode.Expanded = true; + rootNode.ToolTip = ""; + rootNode.EnableClickEvent = true; + this.tvControlItem.Nodes.Add(rootNode); + var inspectTerms = Funs.DB.FeedingRun_SubInspectTerm.Where(x => x.InspectIsClose == 1).ToList(); + if (inspectTerms.Count == 0) return; + var subInstallationIds = inspectTerms.ConvertAll(x => x.InstallationId); + var list = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 1 && subInstallationIds.Contains(x.PreRunId)); + if (list.Count() > 0) + { + foreach (var item in list) + { + TreeNode rootOneNode = new TreeNode(); + rootOneNode.NodeID = item.PreRunId; + rootOneNode.Text = item.PreRunName; + rootOneNode.ToolTip = item.PreRunName; + rootOneNode.CommandName = ""; + rootOneNode.EnableClickEvent = true; + rootOneNode.EnableExpandEvent = false; + rootNode.Nodes.Add(rootOneNode); + rootOneNode.Expanded = true; + } + } + } + + /// + /// 树点击 + /// + protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) + { + BindGrid(); + } + + #endregion + + #region 数据绑定 + + /// + /// 绑定数据 + /// + public void BindGrid() + { + List listStr = new List(); + string sqlStr = $"select a.SubInspectId,a.ProjectId,a.InstallationId,a.DriverCharge,c.UserName as DriverChargeName,a.DrivingManager,d.UserName as DrivingManagerName,a.ProjectManager,e.UserName as ProjectManagerName,a.WanderIsComplete,a.WanderCompleteData,a.IsUnifyWanderAbout,a.UnifyWanderAboutData,a.InspectIsClose,a.InspectCloseData,b.ProjectCode,b.ProjectName from FeedingRun_SubInspectTerm as a inner join Base_Project as b on a.ProjectId=b.ProjectId inner join Sys_User as c on c.UserId=a.DriverCharge inner join Sys_User as d on d.UserId=a.DrivingManager inner join Sys_User as e on e.UserId=a.ProjectManager where a.InspectIsClose=1 and a.ProjectId=@projectid "; + listStr.Add(new SqlParameter("@projectid", this.CurrUser.LoginProjectId)); + if(!string.IsNullOrWhiteSpace(this.tvControlItem.SelectedNodeID)) + { + sqlStr += $"and a.InstallationId=@InstallationId "; + listStr.Add(new SqlParameter("@InstallationId", this.tvControlItem.SelectedNodeID)); + } + sqlStr += " order by a.InspectCloseData desc"; + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(sqlStr, parameter); + Grid1.RecordCount = tb.Rows.Count; + var table = this.GetPagedDataTable(Grid1, tb); + Grid1.DataSource = table; + Grid1.DataBind(); + } + + /// + /// 分页 + /// + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) + { + Grid1.PageIndex = e.NewPageIndex; + BindGrid(); + } + + /// + /// 分页下拉框 + /// + protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) + { + Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); + BindGrid(); + } + + /// + /// 排序 + /// + protected void Grid1_Sort(object sender, GridSortEventArgs e) + { + BindGrid(); + } + + #endregion + + #region 按钮和事件 + + /// + /// 查询 + /// + protected void btnQuery_Click(object sender, EventArgs e) + { + BindGrid(); + } + + /// + /// 导出投料试车申请表 + /// + protected void btnExport_Click(object sender, EventArgs e) + { + //string rootPath = Server.MapPath("~/") + Const.ExcelUrl; + ////导出文件 + //string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\"; + //if (!Directory.Exists(filePath)) + //{ + // Directory.CreateDirectory(filePath); + //} + //string ReportFileName = filePath + "投料试车申请.xlsx"; + ////获取工作包检查表 + //var termData = from a in Funs.DB.FeedingRun_SubInspectTerm + // join b in Funs.DB.Base_Project on a.ProjectId equals b.ProjectId + // join zz in Funs.DB.PreRun_SysDevice on a.InstallationId equals zz.PreRunId//装置 + // select new { a.SubInspectId, a.ProjectId, b.ProjectName, b.ShortName, b.ProjectCode, a.InstallationId, a.DriverCharge, a.DrivingManager, a.ProjectManager, a.InspectionIsAllPass, a.DriverChargeIsAllPass, a.DrivingManagerIsAllPass, a.ProjectManagerIsAllPass, a.InspectTime, a.AddUser, a.AddTime, zzName = zz.PreRunName }; + //if (termData != null) + //{ + // var termModel = termData.FirstOrDefault(); + // //获取工作包检查项表 + // var termItems = Funs.DB.FeedingRun_SubInspectTermItem.Where(x => x.SubInspectId == this.SubInspectId).OrderBy(x => x.Sort).ToList(); + // int rowIndex = 0; + // XSSFWorkbook hssfworkbook = new XSSFWorkbook(); + // XSSFSheet ws = (XSSFSheet)hssfworkbook.CreateSheet("投料试车申请"); + + // #region 列宽 + + // ws.SetColumnWidth(0, (7 * 256)); + // ws.SetColumnWidth(1, (4 * 256)); + // ws.SetColumnWidth(2, (4 * 256)); + // ws.SetColumnWidth(3, (4 * 256)); + // ws.SetColumnWidth(4, (10 * 256)); + // ws.SetColumnWidth(5, (10 * 256)); + // ws.SetColumnWidth(6, (10 * 256)); + // ws.SetColumnWidth(7, (10 * 256)); + // ws.SetColumnWidth(8, (3 * 256)); + // ws.SetColumnWidth(9, (3 * 256)); + // ws.SetColumnWidth(10, (3 * 256)); + // ws.SetColumnWidth(11, (3 * 256)); + // ws.SetColumnWidth(12, (3 * 256)); + // ws.SetColumnWidth(13, (3 * 256)); + // ws.SetColumnWidth(14, (3 * 256)); + // ws.SetColumnWidth(15, (3 * 256)); + // ws.SetColumnWidth(16, (3 * 256)); + // ws.SetColumnWidth(17, (3 * 256)); + + // #endregion + + // #region 样式 + // //头部样式居中 + // ICellStyle titleStyle = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 14, true, true); + // //头部样式靠左 + // ICellStyle leftTitleStyle = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Left, 14, true, true); + // //公共样式 + // ICellStyle style = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10.5, true); + // //公共样式靠左 + // ICellStyle leftStyle = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Left, 10.5, true); + // //公共样式靠左上对其 + // ICellStyle leftTopStyle = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, HorizontalAlignment.Left, 10.5, true); + // //公共样式加粗 + // ICellStyle styleBold = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10.5, true, true); + + // #endregion + + // #region 头部 + + // ws = ExcelCreateRowTitle(ws, hssfworkbook, style, rowIndex, rowIndex + 5, 0, 17); + // //行1 + // var region = new CellRangeAddress(rowIndex, rowIndex + 2, 0, 0); + // ws.AddMergedRegion(region); + // byte[] bytes = File.ReadAllBytes(Server.MapPath("~/") + "Images\\Template.png"); + // int pictureIdx = hssfworkbook.AddPicture(bytes, PictureType.JPEG); + // IDrawing patriarch = ws.CreateDrawingPatriarch(); + // IClientAnchor anchor = patriarch.CreateAnchor(0, 0, 0, 0, 0, rowIndex, 1, rowIndex + 2); + // IPicture pict = patriarch.CreatePicture(anchor, pictureIdx); + // //pict.Resize(); + // region = new CellRangeAddress(rowIndex, rowIndex + 2, 1, 3); + // ws.AddMergedRegion(region); + // ws.GetRow(rowIndex).GetCell(1).SetCellValue("中国五环工程有限公司"); + // ws.GetRow(rowIndex).GetCell(1).CellStyle = + // ws.GetRow(rowIndex).GetCell(2).CellStyle = + // ws.GetRow(rowIndex).GetCell(3).CellStyle = leftTitleStyle; + // region = new CellRangeAddress(rowIndex, rowIndex, 4, 7); + // ws.AddMergedRegion(region); + // ws.GetRow(rowIndex).GetCell(4).SetCellValue(termModel.ProjectName); + // ws.GetRow(rowIndex).GetCell(4).CellStyle = style; + // region = new CellRangeAddress(rowIndex, rowIndex, 8, 12); + // ws.AddMergedRegion(region); + // ws.GetRow(rowIndex).GetCell(8).SetCellValue("项目号"); + // ws.GetRow(rowIndex).GetCell(8).CellStyle = style; + // region = new CellRangeAddress(rowIndex, rowIndex, 13, 17); + // ws.AddMergedRegion(region); + // ws.GetRow(rowIndex).GetCell(13).SetCellValue(termModel.ProjectCode); + // ws.GetRow(rowIndex).GetCell(13).CellStyle = style; + // region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 4, 7); + // ws.AddMergedRegion(region); + // ws.GetRow(rowIndex + 1).GetCell(4).SetCellValue($"({termModel.zzName})"); + // ws.GetRow(rowIndex + 1).GetCell(4).CellStyle = style; + // region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 8, 12); + // ws.AddMergedRegion(region); + // ws.GetRow(rowIndex + 1).GetCell(8).SetCellValue("(文件号)"); + // ws.GetRow(rowIndex + 1).GetCell(8).CellStyle = style; + // region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 13, 17); + // ws.AddMergedRegion(region); + // ws.GetRow(rowIndex + 1).GetCell(13).SetCellValue(""); + // ws.GetRow(rowIndex + 1).GetCell(13).CellStyle = style; + // region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 4, 7); + // ws.AddMergedRegion(region); + // ws.GetRow(rowIndex + 2).GetCell(4).SetCellValue($"投料试车条件检查表"); + // ws.GetRow(rowIndex + 2).GetCell(4).CellStyle = titleStyle; + // region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 8, 12); + // ws.AddMergedRegion(region); + // ws.GetRow(rowIndex + 2).GetCell(8).SetCellValue("第 1 页"); + // ws.GetRow(rowIndex + 2).GetCell(8).CellStyle = style; + // region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 13, 17); + // ws.AddMergedRegion(region); + // ws.GetRow(rowIndex + 2).GetCell(13).SetCellValue("共 1 页"); + // ws.GetRow(rowIndex + 2).GetCell(13).CellStyle = style; + // //行4,行5 + // region = new CellRangeAddress(rowIndex + 3, rowIndex + 4, 0, 2); + // ws.AddMergedRegion(region); + // ws.GetRow(rowIndex + 3).GetCell(0).CellStyle = style; + // ws.GetRow(rowIndex + 3).GetCell(0).SetCellValue(""); + // region = new CellRangeAddress(rowIndex + 3, rowIndex + 4, 3, 11); + // ws.AddMergedRegion(region); + // ws.GetRow(rowIndex + 3).GetCell(3).CellStyle = leftStyle; + // ws.GetRow(rowIndex + 3).GetCell(3).SetCellValue(""); + // region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 12, 17); + // ws.AddMergedRegion(region); + // ws.GetRow(rowIndex + 3).GetCell(12).CellStyle = style; + // ws.GetRow(rowIndex + 3).GetCell(12).SetCellValue("检查日期"); + // region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 12, 17); + // ws.AddMergedRegion(region); + // ws.GetRow(rowIndex + 4).GetCell(12).CellStyle = style; + // ws.GetRow(rowIndex + 4).GetCell(12).SetCellValue(DateTime.Now.ToString("yyyy年MM月dd日")); + // //行6 + // ws.GetRow(rowIndex + 5).GetCell(0).CellStyle = styleBold; + // ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("序号"); + // region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 1, 7); + // ws.AddMergedRegion(region); + // ws.GetRow(rowIndex + 5).GetCell(1).CellStyle = styleBold; + // ws.GetRow(rowIndex + 5).GetCell(1).SetCellValue("检查项目"); + // region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 8, 12); + // ws.AddMergedRegion(region); + // ws.GetRow(rowIndex + 5).GetCell(8).CellStyle = styleBold; + // ws.GetRow(rowIndex + 5).GetCell(8).SetCellValue("结果"); + // region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 13, 17); + // ws.AddMergedRegion(region); + // ws.GetRow(rowIndex + 5).GetCell(13).CellStyle = styleBold; + // ws.GetRow(rowIndex + 5).GetCell(13).SetCellValue("备注"); + + // #endregion + + // #region 表格 + + // var start = rowIndex + 6; + // var end = rowIndex + 5 + termItems.Count; + + // ws = ExcelCreateRowTitle(ws, hssfworkbook, style, start, end, 0, 17); + + // //合并单元格 + // for (int hb = start; hb <= end; hb++) + // { + // region = new CellRangeAddress(hb, hb, 1, 7); + // ws.AddMergedRegion(region); + // region = new CellRangeAddress(hb, hb, 8, 12); + // ws.AddMergedRegion(region); + // region = new CellRangeAddress(hb, hb, 13, 17); + // ws.AddMergedRegion(region); + // } + + // //数据 + // int num = 1; + // var dataIndex = 6; + // foreach (var item in termItems) + // { + // //序号 + // ws.GetRow(dataIndex).GetCell(0).SetCellValue(num); + // //检查项目 + // ws.GetRow(dataIndex).GetCell(1).SetCellValue(item.WorkInspectName); + // ws.GetRow(dataIndex).GetCell(1).CellStyle = leftStyle; + // //结果 + // ws.GetRow(dataIndex).GetCell(8).SetCellValue(""); + // //备注 + // ws.GetRow(dataIndex).GetCell(13).SetCellValue(""); + // dataIndex++; + // num++; + // } + // rowIndex = start + termItems.Count; + + // #endregion + + // #region 尾部 + + // ws = ExcelCreateRowTitle(ws, hssfworkbook, style, rowIndex, rowIndex, 0, 17, 100); + // //行1 + // ws.GetRow(rowIndex).GetCell(0).SetCellValue("结论"); + // region = new CellRangeAddress(rowIndex, rowIndex, 1, 17); + // ws.AddMergedRegion(region); + // ws.GetRow(rowIndex).GetCell(1).SetCellValue("是否同意进行(包括整改意见):"); + // ws.GetRow(rowIndex).GetCell(1).CellStyle = leftTopStyle; + // //行2 + // ws = ExcelCreateRowTitle(ws, hssfworkbook, style, rowIndex + 1, rowIndex + 1, 0, 17, 80); + // ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue("检查人员"); + // region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 1, 4); + // ws.AddMergedRegion(region); + // ws.GetRow(rowIndex + 1).GetCell(1).SetCellValue("施工单位:"); + // ws.GetRow(rowIndex + 1).GetCell(1).CellStyle = leftTopStyle; + // region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 5, 6); + // ws.AddMergedRegion(region); + // ws.GetRow(rowIndex + 1).GetCell(5).SetCellValue("装置开车负责人:"); + // ws.GetRow(rowIndex + 1).GetCell(5).CellStyle = leftTopStyle; + // region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 7, 11); + // ws.AddMergedRegion(region); + // ws.GetRow(rowIndex + 1).GetCell(7).SetCellValue("开车经理:"); + // ws.GetRow(rowIndex + 1).GetCell(7).CellStyle = leftTopStyle; + // region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 12, 17); + // ws.AddMergedRegion(region); + // ws.GetRow(rowIndex + 1).GetCell(12).SetCellValue("项目经理:"); + // ws.GetRow(rowIndex + 1).GetCell(12).CellStyle = leftTopStyle; + + // #endregion + + // ws.PrintSetup.Landscape = false; + // ws.PrintSetup.PaperSize = 9; + // ws.ForceFormulaRecalculation = true; + // using (FileStream filess = File.OpenWrite(ReportFileName)) + // { + // hssfworkbook.Write(filess); + // } + // FileInfo filet = new FileInfo(ReportFileName); + // Response.Clear(); + // Response.Charset = "GB2312"; + // Response.ContentEncoding = System.Text.Encoding.UTF8; + // // 添加头信息,为"文件下载/另存为"对话框指定默认文件名 + // Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode("投料试车申请.xlsx")); + // // 添加头信息,指定文件大小,让浏览器能够显示下载进度 + // Response.AddHeader("Content-Length", filet.Length.ToString()); + // // 指定返回的是一个不能被客户端读取的流,必须被下载 + // Response.ContentType = "application/ms-excel"; + // // 把文件流发送到客户端 + // Response.WriteFile(filet.FullName); + // // 停止页面的执行 + // Response.End(); + //} + } + + /// + /// 右击导出投料试车申请表 + /// + protected void btnMenuExport_Click(object sender, EventArgs e) + { + btnExport_Click(null, null); + } + + /// + /// 双击事件 + /// + protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) + { + btnExport_Click(null, null); + } + + #endregion + + + + #region 私有方法 + + /// + /// 创建样式 + /// + /// + public static ICellStyle SetExcelStyle(XSSFWorkbook wb, BorderStyle Bottom, BorderStyle Left, BorderStyle Right, BorderStyle Top, VerticalAlignment VerAig, HorizontalAlignment HorAig, double FontSize, bool WrapText = true, bool Bold = false, string FontName = "宋体") + { + ICellStyle style = wb.CreateCellStyle(); + style.BorderBottom = Bottom; + style.BorderLeft = Left; + style.BorderRight = Right; + style.BorderTop = Top; + style.VerticalAlignment = VerAig; + style.Alignment = HorAig; + IFont font = wb.CreateFont(); + font.FontHeightInPoints = FontSize; + font.IsBold = Bold; + font.FontName = FontName; + style.SetFont(font); + style.WrapText = WrapText; + return style; + } + + /// + /// 创建头部 + /// + /// + private XSSFSheet ExcelCreateRowTitle(XSSFSheet ws, XSSFWorkbook hssfworkbook, ICellStyle style, int sRows, int eRows, int cStart, int cEnd, float height = 21) + { + for (int i = sRows; i <= eRows; i++) + { + ws.CreateRow(i); + ws.GetRow(i).HeightInPoints = height; + for (int j = cStart; j <= cEnd; j++) + { + ws.GetRow(i).CreateCell(j); + ws.GetRow(i).CreateCell(j).CellStyle = style; + } + } + return ws; + } + + #endregion + + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/FeedingRunApplication.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/FeedingRunApplication.aspx.designer.cs new file mode 100644 index 00000000..768b8013 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/FeedingRunApplication.aspx.designer.cs @@ -0,0 +1,134 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.Feeding +{ + + + public partial class FeedingRunApplication + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// panelLeftRegion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel panelLeftRegion; + + /// + /// tvControlItem 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Tree tvControlItem; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// btnQuery 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnQuery; + + /// + /// ToolbarSeparator1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1; + + /// + /// ToolbarText1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarText ToolbarText1; + + /// + /// ddlPageSize 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlPageSize; + + /// + /// Menu1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Menu Menu1; + + /// + /// btnMenuExport 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuExport; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTailTermEdit.aspx b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTailTermEdit.aspx new file mode 100644 index 00000000..c9c2e641 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTailTermEdit.aspx @@ -0,0 +1,181 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InspectTailTermEdit.aspx.cs" Inherits="FineUIPro.Web.TestRun.Feeding.InspectTailTermEdit" %> + + + + + + 质量巡检 + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTailTermEdit.aspx.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTailTermEdit.aspx.cs new file mode 100644 index 00000000..e4a7d562 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTailTermEdit.aspx.cs @@ -0,0 +1,393 @@ +using BLL; +using Model; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.TestRun.Feeding +{ + public partial class InspectTailTermEdit : PageBase + { + /// + /// 检查表尾项主键 + /// + public string TailTermId + { + get { return (string)ViewState["TailTermId"]; } + set { ViewState["TailTermId"] = value; } + } + + /// + /// 检查项主键 + /// + public string TermItemId + { + get { return (string)ViewState["TermItemId"]; } + set { ViewState["TermItemId"] = value; } + } + + /// + /// 是否查看 + /// + public bool IsView + { + get { return (bool)ViewState["IsView"]; } + set { ViewState["IsView"] = value; } + } + + /// + /// 问题图片是否可编辑 + /// + public int QuestionEditImg + { + get { return (int)ViewState["QuestionEditImg"]; } + set { ViewState["QuestionEditImg"] = value; } + } + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.TailTermId = Request["TailTermId"]; + this.TermItemId = Request["TermItemId"]; + //是否查看 + this.IsView = string.IsNullOrWhiteSpace(Request["IsView"]) ? false : bool.Parse(Request["IsView"]); + //数据绑定 + PageInit(); + //处理和审批意见绑定 + gvRecordBrid(); + //判断是否查看 + if (IsView) + { + btnSave.Hidden = true; + btnSubmit.Hidden = true; + QuestionEditImg = -1; + txtTailTermCode.Enabled = false; + ddlConstructionUnit.Enabled = false; + ddlTermItemId.Enabled = false; + txtQuestionDesc.Enabled = false; + txtRectifyOpinion.Enabled = false; + ddlApproveUser.Enabled = false; + ddlHandleUser.Enabled = false; + } + } + } + + + /// + /// 默认绑定 + /// + public void PageInit() + { + QuestionEditImg = 0; + //施工单位 + UnitService.InitUnitByProjectIdUnitTypeDropDownList(ddlConstructionUnit, this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2, false); + //检查人绑定 + var userList = from user in Funs.DB.Sys_User + join projectrole in Funs.DB.Project_ProjectUser on user.UserId equals projectrole.UserId + where projectrole.ProjectId == this.CurrUser.LoginProjectId + select user; + var userids = new List() { Const.sysglyId, Const.hfnbdId, Const.sedinId }; + var addUserList = Funs.DB.Sys_User.Where(x => userids.Contains(x.UserId)); + var users = userList.ToList(); + if (addUserList.Count() > 0) + { + users.AddRange(addUserList); + } + //检查人和审核人 + if (users.Count() > 0) + { + //处理人 + ddlHandleUser.DataTextField = "UserName"; + ddlHandleUser.DataValueField = "UserId"; + ddlHandleUser.DataSource = users; + ddlHandleUser.DataBind(); + ddlHandleUser.SelectedValue = this.CurrUser.UserId; + //审核人 + ddlApproveUser.DataTextField = "UserName"; + ddlApproveUser.DataValueField = "UserId"; + ddlApproveUser.DataSource = users; + ddlApproveUser.DataBind(); + ddlApproveUser.SelectedValue = this.CurrUser.UserId; + } + var model = Funs.DB.FeedingRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId); + if (model != null) + { + //项目名称 + txtProjectName.Text = model.ProjectName; + //巡检编号 + txtTailTermCode.Text = model.TailTermCode; + //施工单位 + ddlConstructionUnit.SelectedValue = model.ConstructionUnit; + //提出人 + var inspectModel = users.FirstOrDefault(x => x.UserId == model.InspectUser); + if (inspectModel != null) + { + lblInspectUser.Text = inspectModel.UserName; + hidInspectUserId.Text = inspectModel.UserId; + } + //绑定检查项 + var list = Funs.DB.FeedingRun_SubInspectTermItem.Where(x => x.InspectionResults == 0 && x.InspectedUser == this.CurrUser.UserId).ToList(); + if (list.Count() > 0) + { + ddlTermItemId.DataTextField = "WorkInspectName"; + ddlTermItemId.DataValueField = "TermItemId"; + ddlTermItemId.DataSource = list; + ddlTermItemId.DataBind(); + } + //检查项 + ddlTermItemId.SelectedValue = model.TermItemId; + //问题描述 + txtQuestionDesc.Text = model.QuestionDesc; + //整改意见 + txtRectifyOpinion.Text = model.RectifyOpinion; + //提出时间 + lblRectifyTime.Text = model.RectifyTime != null ? model.RectifyTime.Value.ToString("yyyy-MM-dd") : string.Empty; + //处理人 + ddlHandleUser.SelectedValue = model.HandleUser; + //审核人 + ddlApproveUser.SelectedValue = model.ApproveUser; + //整改完成日期 + txtAdjustCompleteTime.Text = model.AdjustCompleteTime != null ? model.AdjustCompleteTime.Value.ToString("yyyy-MM-dd") : string.Empty; + if (model.ApproveState > 1) + { + QuestionEditImg = -1; + } + } + else + { + this.TailTermId = Guid.NewGuid().ToString(); + var projectModel = Funs.DB.Base_Project.FirstOrDefault(e => e.ProjectId == this.CurrUser.LoginProjectId); + if (projectModel != null) + { + txtProjectName.Text = projectModel.ProjectName; + string code = projectModel.ProjectCode + "-06-CM03-XJ-"; + txtTailTermCode.Text = SQLHelper.RunProcNewId("SpGetNewCode5", "dbo.FeedingRun_InspectTailTerm", "TailTermCode", code); + } + if (!string.IsNullOrWhiteSpace(this.TermItemId)) + { + var itemTerm = Funs.DB.FeedingRun_SubInspectTermItem.FirstOrDefault(x => x.InspectedUser == this.CurrUser.UserId && x.TermItemId == this.TermItemId); + if (itemTerm != null) + { + var list = Funs.DB.FeedingRun_SubInspectTermItem.Where(x => x.InspectedUser == this.CurrUser.UserId && (x.InspectionResults == 0 || x.TermItemId == this.TermItemId)); + ddlTermItemId.Items.Clear(); + if (list.Count() > 0) + { + ddlTermItemId.DataTextField = "WorkInspectName"; + ddlTermItemId.DataValueField = "TermItemId"; + ddlTermItemId.DataSource = list; + ddlTermItemId.DataBind(); + } + else + { + ddlTermItemId.Items.Insert(0, new ListItem("==无数据==", "")); + } + + //检查项 + ddlTermItemId.SelectedValue = itemTerm.TermItemId; + //提出人 + var inspectModel = users.FirstOrDefault(x => x.UserId == itemTerm.InspectedUser); + if (inspectModel != null) + { + lblInspectUser.Text = inspectModel.UserName; + hidInspectUserId.Text = inspectModel.UserId; + } + //提出时间 + lblRectifyTime.Text = DateTime.Now.ToString("yyyy-MM-dd"); + } + } + } + } + + /// + /// 处理和审批意见绑定 + /// + public void gvRecordBrid() + { + string strSql = @"select a.InspectTermId,a.ApproveOpinion,a.ApproveTime,a.ApproveType,a.ApproveState,(case a.ApproveType when 0 then (case a.ApproveState when 0 then '处理退回' when 1 then '处理通过' else '' end) else (case a.ApproveState when 0 then '审批退回' when 1 then '审批通过' else '' end) end) as ApproveStateName,b.ConstructionUnit,d.UnitName as ConstructionUnitName,a.AddUser,a.AddTime from FeedingRun_InspectTermApproveRecords as a inner join FeedingRun_InspectTailTerm as b on a.TailTermId=b.TailTermId inner join FeedingRun_SubInspectTermItem as c on c.TermItemId=a.TermItemId inner join Base_Unit as d on d.UnitId=b.ConstructionUnit where 1=1 and a.ProjectId=@ProjectId and a.TailTermId=@TailTermId "; + List listStr = new List(); + listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); + listStr.Add(new SqlParameter("@TailTermId", this.TailTermId)); + strSql += " order by a.AddTime asc"; + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); + //处理意见 + var handleTb = tb.AsEnumerable().Where(row => row.Field("ApproveType") == 0); + gvHandle.DataSource = handleTb; + gvHandle.DataBind(); + //审批意见 + var approveTb = tb.AsEnumerable().Where(row => row.Field("ApproveType") == 1); + gvApprove.DataSource = approveTb; + gvApprove.DataBind(); + } + + #region 按钮 + + /// + /// 保存 + /// + protected void btnSave_Click(object sender, EventArgs e) + { + if (string.IsNullOrWhiteSpace(ddlConstructionUnit.SelectedValue)) + { + ShowNotify("请选择施工单位!", MessageBoxIcon.Warning); + return; + } + if (string.IsNullOrWhiteSpace(ddlTermItemId.SelectedValue)) + { + ShowNotify("请选择检查项!", MessageBoxIcon.Warning); + return; + } + if (string.IsNullOrWhiteSpace(ddlHandleUser.SelectedValue)) + { + ShowNotify("请选择处理人!", MessageBoxIcon.Warning); + return; + } + if (string.IsNullOrWhiteSpace(ddlApproveUser.SelectedValue)) + { + ShowNotify("请选择审核人!", MessageBoxIcon.Warning); + return; + } + var isAdd = false; + var model = Funs.DB.FeedingRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId); + if (model == null) + { + isAdd = true; + model = new FeedingRun_InspectTailTerm(); + model.TailTermId = this.TailTermId; + model.ProjectId = this.CurrUser.LoginProjectId; + } + model.ProjectName = txtProjectName.Text; + model.TailTermCode = txtTailTermCode.Text; + model.ConstructionUnit = ddlConstructionUnit.SelectedValue; + model.TermItemId = ddlTermItemId.SelectedValue; + model.QuestionDesc = txtQuestionDesc.Text.Trim(); + model.RectifyOpinion = txtRectifyOpinion.Text.Trim(); + model.RectifyTime = DateTime.Parse(lblRectifyTime.Text); + model.InspectUser = hidInspectUserId.Text; + model.HandleUser = ddlHandleUser.SelectedValue; + model.ApproveUser = ddlApproveUser.SelectedValue; + model.AdjustCompleteTime = DateTime.Parse(txtAdjustCompleteTime.Text); + model.ApproveState = 0; + model.AddUser = this.CurrUser.LoginProjectId; + model.AddTime = DateTime.Now; + if (isAdd) + { + Funs.DB.FeedingRun_InspectTailTerm.InsertOnSubmit(model); + } + //判断尾项是否保存 + var itemModel = Funs.DB.FeedingRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == this.TermItemId && x.InspectedUser == this.CurrUser.UserId); + if (itemModel != null) itemModel.InspectionResults = 0; + Funs.DB.SubmitChanges(); + ShowNotify("操作成功!", MessageBoxIcon.Success); + PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + } + + /// + /// 保存并提交 + /// + protected void btnSubmit_Click(object sender, EventArgs e) + { + if (string.IsNullOrWhiteSpace(ddlConstructionUnit.SelectedValue)) + { + ShowNotify("请选择施工单位!", MessageBoxIcon.Warning); + return; + } + if (string.IsNullOrWhiteSpace(ddlTermItemId.SelectedValue)) + { + ShowNotify("请选择检查项!", MessageBoxIcon.Warning); + return; + } + if (string.IsNullOrWhiteSpace(ddlHandleUser.SelectedValue)) + { + ShowNotify("请选择处理人!", MessageBoxIcon.Warning); + return; + } + if (string.IsNullOrWhiteSpace(ddlApproveUser.SelectedValue)) + { + ShowNotify("请选择审核人!", MessageBoxIcon.Warning); + return; + } + var isAdd = false; + var model = Funs.DB.FeedingRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId); + if (model == null) + { + isAdd = true; + model = new FeedingRun_InspectTailTerm(); + model.TailTermId = this.TailTermId; + model.ProjectId = this.CurrUser.LoginProjectId; + } + model.ProjectName = txtProjectName.Text; + model.TailTermCode = txtTailTermCode.Text; + model.ConstructionUnit = ddlConstructionUnit.SelectedValue; + model.TermItemId = ddlTermItemId.SelectedValue; + model.QuestionDesc = txtQuestionDesc.Text.Trim(); + model.RectifyOpinion = txtRectifyOpinion.Text.Trim(); + model.RectifyTime = DateTime.Parse(lblRectifyTime.Text); + model.InspectUser = hidInspectUserId.Text; + model.HandleUser = ddlHandleUser.SelectedValue; + model.ApproveUser = ddlApproveUser.SelectedValue; + model.AdjustCompleteTime = DateTime.Parse(txtAdjustCompleteTime.Text); + model.ApproveState = 1; + model.AddUser = this.CurrUser.LoginProjectId; + model.AddTime = DateTime.Now; + if (isAdd) + { + Funs.DB.FeedingRun_InspectTailTerm.InsertOnSubmit(model); + } + //判断尾项是否保存 + var itemModel = Funs.DB.FeedingRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == this.TermItemId && x.InspectedUser == this.CurrUser.UserId); + if (itemModel != null) itemModel.InspectionResults = 0; + Funs.DB.SubmitChanges(); + ShowNotify("操作成功!", MessageBoxIcon.Success); + PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + } + + /// + /// 问题图片 + /// + protected void imgBtnQuestionFile_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", QuestionEditImg, this.TailTermId + "q", Const.InspectTailTerm))); + } + + #endregion + + #region 事件 + + /// + /// 检查项 + /// + protected void ddlTermItemId_SelectedIndexChanged(object sender, EventArgs e) + { + var itemUserTerm = Funs.DB.FeedingRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == ddlTermItemId.SelectedValue); + if (itemUserTerm != null) + { + //提出人 + var inspectModel = Funs.DB.Sys_User.FirstOrDefault(x => x.UserId == itemUserTerm.InspectedUser); + if (inspectModel != null) + { + lblInspectUser.Text = inspectModel.UserName; + hidInspectUserId.Text = inspectModel.UserId; + } + //提出时间 + lblRectifyTime.Text = DateTime.Now.ToString("yyyy-MM-dd"); + } + } + + /// + /// 关闭 + /// + protected void WindowAtt_Close(object sender, WindowCloseEventArgs e) + { + + } + + #endregion + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTailTermEdit.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTailTermEdit.aspx.designer.cs new file mode 100644 index 00000000..38d67af9 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTailTermEdit.aspx.designer.cs @@ -0,0 +1,269 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.Feeding +{ + + + public partial class InspectTailTermEdit + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// SimpleForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form SimpleForm1; + + /// + /// ContentPanel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ContentPanel ContentPanel1; + + /// + /// Form2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form Form2; + + /// + /// txtProjectName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtProjectName; + + /// + /// txtTailTermCode 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtTailTermCode; + + /// + /// ddlConstructionUnit 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlConstructionUnit; + + /// + /// ddlTermItemId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlTermItemId; + + /// + /// txtQuestionDesc 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextArea txtQuestionDesc; + + /// + /// txtRectifyOpinion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextArea txtRectifyOpinion; + + /// + /// lblInspectUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblInspectUser; + + /// + /// lblRectifyTime 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblRectifyTime; + + /// + /// hidInspectUserId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.HiddenField hidInspectUserId; + + /// + /// ddlHandleUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlHandleUser; + + /// + /// ddlApproveUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlApproveUser; + + /// + /// txtAdjustCompleteTime 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtAdjustCompleteTime; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// imgBtnQuestionFile 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button imgBtnQuestionFile; + + /// + /// plApprove2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.FormRow plApprove2; + + /// + /// gvHandle 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid gvHandle; + + /// + /// plApprove3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.FormRow plApprove3; + + /// + /// gvApprove 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid gvApprove; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// ToolbarFill1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill1; + + /// + /// btnSave 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSave; + + /// + /// btnSubmit 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSubmit; + + /// + /// WindowAtt 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window WindowAtt; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTailTermList.aspx b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTailTermList.aspx new file mode 100644 index 00000000..7fcb30bb --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTailTermList.aspx @@ -0,0 +1,189 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InspectTailTermList.aspx.cs" Inherits="FineUIPro.Web.TestRun.Feeding.InspectTailTermList" %> + + + + + + + + + 检查表尾项管理 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTailTermList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTailTermList.aspx.cs new file mode 100644 index 00000000..da7fff7d --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTailTermList.aspx.cs @@ -0,0 +1,365 @@ +using BLL; +using System; +using System.Collections.Generic; +using System.Data.SqlClient; +using System.Data; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.TestRun.Feeding +{ + public partial class InspectTailTermList : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + InitTreeMenu(); + } + } + + #region 树绑定 + + /// + /// 加载树 + /// + private void InitTreeMenu() + { + this.tvControlItem.Nodes.Clear(); + TreeNode rootNode = new TreeNode(); + rootNode.Text = "检查表"; + rootNode.NodeID = "0"; + rootNode.Expanded = true; + rootNode.ToolTip = ""; + rootNode.EnableClickEvent = true; + this.tvControlItem.Nodes.Add(rootNode); + var userSubInspects = Funs.DB.FeedingRun_SubInspectTermItem.Where(x => x.InspectedUser == this.CurrUser.UserId && x.InspectionResults == 0).ToList(); + if (userSubInspects.Count == 0) return; + var subInstallationIds = userSubInspects.ConvertAll(x => x.InstallationId); + var list = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 1 && subInstallationIds.Contains(x.PreRunId)); + if (list.Count() > 0) + { + foreach (var item in list) + { + TreeNode rootOneNode = new TreeNode(); + rootOneNode.NodeID = item.PreRunId; + rootOneNode.Text = item.PreRunName; + rootOneNode.ToolTip = item.PreRunName; + rootOneNode.CommandName = ""; + rootOneNode.EnableClickEvent = true; + rootOneNode.EnableExpandEvent = false; + rootNode.Nodes.Add(rootOneNode); + rootOneNode.Expanded = true; + } + } + } + + /// + /// 点击TreeView + /// + protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) + { + this.BindGrid(); + } + + #endregion + + #region 绑定数据 + + /// + /// 数据绑定 + /// + public void BindGrid() + { + string strSql = @"select a.TailTermId,a.ProjectId,d.ProjectCode,d.ProjectName,a.TailTermCode,a.ConstructionUnit,b.UnitName,a.SubInspectId,a.TermItemId,c.WorkInspectName,a.QuestionDesc,a.RectifyTime,a.RectifyOpinion,a.InspectUser,e.UserName as InspectUserName,a.ApproveUser,f.UserName as ApproveUserName,a.HandleUser,g.UserName as HandleUserName,a.ApproveState,(case a.ApproveState when 0 then '待提交处理' when 1 then '待处理' when 2 then '处理退回' when 3 then '审核退回' when 4 then '待审核' when 5 then '审核通过' else '' end) as ApproveStateName,a.AddTime,a.AdjustCompleteTime,DATEDIFF(DAY, GETDATE(),a.AdjustCompleteTime) as AdjustDiffDay from FeedingRun_InspectTailTerm as a inner join Base_Unit as b on a.ConstructionUnit=b.UnitId inner join FeedingRun_SubInspectTermItem as c on c.TermItemId=a.TermItemId inner join Base_Project as d on d.ProjectId=a.ProjectId inner join Sys_User as e on e.UserId=a.InspectUser inner join Sys_User as f on f.UserId=a.ApproveUser inner join Sys_User as g on g.UserId=a.HandleUser where 1=1 and a.ProjectId=@projectid and a.InspectUser=@InspectUser"; + + List listStr = new List(); + listStr.Add(new SqlParameter("@projectid", this.CurrUser.LoginProjectId)); + listStr.Add(new SqlParameter("@InspectUser", this.CurrUser.UserId)); + if (!string.IsNullOrWhiteSpace(this.tvControlItem.SelectedNodeID)) + { + strSql += " and c.InstallationId=@InstallationId"; + listStr.Add(new SqlParameter("@InstallationId", this.tvControlItem.SelectedNodeID)); + } + //审核状态 + if (!string.IsNullOrWhiteSpace(ddlApproveState.SelectedValue)) + { + strSql += " and a.ApproveState=@ApproveState"; + listStr.Add(new SqlParameter("@ApproveState", ddlApproveState.SelectedValue)); + } + //开始时间 + if (!string.IsNullOrWhiteSpace(txtStartTime.Text)) + { + strSql += $" and a.RectifyTime>='{DateTime.Parse(txtStartTime.Text.Trim()).ToString("yyyy-MM-dd")} 00:00:00'"; + } + //结束时间 + if (!string.IsNullOrWhiteSpace(txtEndTime.Text)) + { + strSql += $" and a.RectifyTime<='{DateTime.Parse(txtStartTime.Text.Trim()).ToString("yyyy-MM-dd")} 23:59:59'"; + } + strSql += " order by a.AddTime asc"; + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); + Grid1.RecordCount = tb.Rows.Count; + var table = this.GetPagedDataTable(Grid1, tb); + Grid1.DataSource = table; + Grid1.DataBind(); + } + + /// + /// 分页 + /// + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) + { + Grid1.PageIndex = e.NewPageIndex; + BindGrid(); + } + + /// + /// 双击事件 + /// + protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) + { + btnMenuModify_Click(null, null); + } + + /// + /// 分页下拉框 + /// + protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) + { + Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); + BindGrid(); + } + + /// + /// 排序 + /// + protected void Grid1_Sort(object sender, GridSortEventArgs e) + { + BindGrid(); + } + + /// + /// 行数据处理事件 + /// + protected void Grid1_RowDataBound(object sender, GridRowEventArgs e) + { + DataRowView row = e.DataItem as DataRowView; + + // 入学年份 + int diffDay = Convert.ToInt32(row["AdjustDiffDay"]); + TemplateField AdjustDiffDay = Grid1.FindColumn("AdjustDiffDay") as TemplateField; + int approveState = int.Parse(Grid1.DataKeys[e.RowIndex][1].ToString()); + if (approveState != 5) + { + if (diffDay > 0) + { + e.CellAttributes[AdjustDiffDay.ColumnIndex]["data-color"] = "color1"; + } + else if (diffDay == 0) + { + e.CellAttributes[AdjustDiffDay.ColumnIndex]["data-color"] = "color2"; + } + else if (diffDay < 0) + { + e.CellAttributes[AdjustDiffDay.ColumnIndex]["data-color"] = "color3"; + } + } + } + + #endregion + + #region 按钮 + + /// + /// 修改 + /// + protected void btnMenuModify_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); + return; + } + + var passLs = new List() { 0, 2 }; + var model = Funs.DB.FeedingRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID); + if (model != null) + { + if (!passLs.Contains(model.ApproveState.Value)) + { + Alert.ShowInTop("只可编辑“待提交处理”和“处理退回”的记录!", MessageBoxIcon.Warning); + return; + } + } + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectTailTermEdit.aspx?TailTermId={0}", Grid1.SelectedRowID, "编辑 - "))); + } + + /// + /// 编辑 + /// + protected void btnModify_Click(object sender, EventArgs e) + { + btnMenuModify_Click(null, null); + } + + /// + /// 新增 + /// + protected void btnNew_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectTailTermEdit.aspx?TailTermId=", "新增 - "))); + } + + /// + /// 查看 + /// + protected void btnMenuView_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); + return; + } + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectTailTermEdit.aspx?IsView=true&TailTermId={0}", Grid1.SelectedRowID, "查看 - "))); + } + + /// + /// 删除 + /// + protected void btnMenuDel_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); + return; + } + var model = Funs.DB.FeedingRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID); + if (model != null) + { + if (model.ApproveState != 0) + { + Alert.ShowInTop("只可删除待提交的记录!", MessageBoxIcon.Warning); + return; + } + + Funs.DB.FeedingRun_InspectTailTerm.DeleteOnSubmit(model); + Funs.DB.SubmitChanges(); + BindGrid(); + Alert.ShowInTop("删除成功!", MessageBoxIcon.Success); + } + } + + /// + /// 查询 + /// + protected void btnQuery_Click(object sender, EventArgs e) + { + BindGrid(); + } + + /// + /// 弹框关闭 + /// + protected void Window1_Close(object sender, WindowCloseEventArgs e) + { + BindGrid(); + } + + /// + /// 提交处理 + /// + protected void btnSubmitReview_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); + return; + } + var passLs = new List() { 0, 2 }; + var model = Funs.DB.FeedingRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID); + if (model != null) + { + //0:待提交处理1:待处理2:处理退回3:审核退回4:待审核5:审核通过 + if (!passLs.Contains(model.ApproveState.Value)) + { + Alert.ShowInTop("只可提交“待提交处理”和“处理退回”的记录!", MessageBoxIcon.Warning); + return; + } + model.ApproveState = 1; + Funs.DB.SubmitChanges(); + BindGrid(); + Alert.ShowInTop("提交成功!", MessageBoxIcon.Success); + } + } + + /// + /// 撤回提交 + /// + protected void btnwithdraw_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); + return; + } + var model = Funs.DB.FeedingRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID); + if (model != null) + { + //0:待提交处理1:待处理2:处理退回3:审核退回4:待审核5:审核通过 + if (model.ApproveState != 1) + { + Alert.ShowInTop("只可撤回“待处理”的记录!", MessageBoxIcon.Warning); + return; + } + model.ApproveState = 0; + Funs.DB.SubmitChanges(); + BindGrid(); + Alert.ShowInTop("撤回成功!", MessageBoxIcon.Success); + } + } + + #endregion + + #region 私有方法 + + /// + /// 是否逾期返回 + /// + /// + public string IsOverdue(object diffDayVal, object approveStateVal) + { + var result = string.Empty; + var diffDay = 0; + var approveState = 0; + if (diffDayVal != null) diffDay = int.Parse(diffDayVal.ToString()); + if (approveStateVal != null) approveStateVal = int.Parse(approveStateVal.ToString()); + if (approveState != 5) + { + if (diffDay > 0) + { + result = "未逾期"; + } + else if (diffDay == 0) + { + result = "即将逾期"; + } + else if (diffDay < 0) + { + result = "已逾期"; + } + } + else + { + result = "整改完毕"; + } + return result; + } + + #endregion + + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTailTermList.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTailTermList.aspx.designer.cs new file mode 100644 index 00000000..939a5a5a --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTailTermList.aspx.designer.cs @@ -0,0 +1,233 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.Feeding +{ + + + public partial class InspectTailTermList + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// panelLeftRegion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel panelLeftRegion; + + /// + /// tvControlItem 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Tree tvControlItem; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// ddlApproveState 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlApproveState; + + /// + /// txtStartTime 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtStartTime; + + /// + /// txtEndTime 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtEndTime; + + /// + /// btnQuery 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnQuery; + + /// + /// btnNew 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnNew; + + /// + /// btnModify 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnModify; + + /// + /// btnSubmitReview 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSubmitReview; + + /// + /// btnwithdraw 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnwithdraw; + + /// + /// lblIsOverdue 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblIsOverdue; + + /// + /// ToolbarSeparator1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1; + + /// + /// ToolbarText1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarText ToolbarText1; + + /// + /// ddlPageSize 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlPageSize; + + /// + /// Window1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window Window1; + + /// + /// Menu1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Menu Menu1; + + /// + /// btnMenuModify 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuModify; + + /// + /// btnMenuView 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuView; + + /// + /// btnMenuDel 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuDel; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTemplate.aspx b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTemplate.aspx new file mode 100644 index 00000000..52ea933e --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTemplate.aspx @@ -0,0 +1,66 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InspectTemplate.aspx.cs" Inherits="FineUIPro.Web.TestRun.Feeding.InspectTemplate" %> + + + + + + 工作包模板管理 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTemplate.aspx.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTemplate.aspx.cs new file mode 100644 index 00000000..51240e83 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTemplate.aspx.cs @@ -0,0 +1,113 @@ +using BLL; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.TestRun.Feeding +{ + public partial class InspectTemplate : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.BindGrid();//加载树 + } + } + + #region 数据绑定 + + /// + /// 绑定数据 + /// + public void BindGrid() + { + if (!string.IsNullOrWhiteSpace(txtsWorkInspectName.Text)) + { + var list = Funs.DB.FeedingRun_WorkInspectTemplate.Where(x => x.WorkInspectName.Contains(txtsWorkInspectName.Text)).OrderBy(x => x.Sort); + Grid1.DataSource = list; + } + else + { + var list = Funs.DB.FeedingRun_WorkInspectTemplate.OrderBy(x => x.Sort); + Grid1.DataSource = list; + } + Grid1.DataBind(); + } + + /// + /// 搜索 + /// + protected void btnSearch_Click(object sender, EventArgs e) + { + BindGrid(); + } + + /// + /// 行按钮事件 + /// + protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) + { + if (e.CommandName == "Delete") + { + string rowID = e.RowID; + var model = Funs.DB.FeedingRun_WorkInspectTemplate.FirstOrDefault(p => p.WorkInspectId == rowID); + if (model != null) + { + Funs.DB.FeedingRun_WorkInspectTemplate.DeleteOnSubmit(model); + Funs.DB.SubmitChanges(); + BindGrid(); + ShowNotify("删除成功!"); + } + else + { + ShowNotify("删除错误!"); + } + } + } + + #endregion + + /// + /// 新增 + /// + protected void btnAdd_Click(object sender, EventArgs e) + { + this.hidSelectedNodeID.Text = string.Empty; + PageContext.RegisterStartupScript(Window1.GetSaveStateReference(hidSelectedNodeID.ClientID) + + Window1.GetShowReference($"InspectTemplateEdit.aspx?WorkInspectId=", "新增")); + } + + /// + /// 编辑 + /// + 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(); + this.hidSelectedNodeID.Text = string.Empty; + PageContext.RegisterStartupScript(Window1.GetSaveStateReference(hidSelectedNodeID.ClientID) + + Window1.GetShowReference($"InspectTemplateEdit.aspx?WorkInspectId={rowId}", "编辑")); + } + + /// + /// 新增/编辑关闭 + /// + protected void Window1_Close(object sender, WindowCloseEventArgs e) + { + if (!string.IsNullOrWhiteSpace(hidSelectedNodeID.Text)) + { + BindGrid(); + } + } + + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTemplate.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTemplate.aspx.designer.cs new file mode 100644 index 00000000..0b5d4a64 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTemplate.aspx.designer.cs @@ -0,0 +1,125 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.Feeding +{ + + + public partial class InspectTemplate + { + + /// + /// 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; + + /// + /// txtsWorkInspectName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtsWorkInspectName; + + /// + /// btnSearch 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSearch; + + /// + /// ToolbarFill 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill; + + /// + /// btnAdd 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnAdd; + + /// + /// btnEdit 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnEdit; + + /// + /// hidSelectedNodeID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox hidSelectedNodeID; + + /// + /// Window1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window Window1; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTemplateEdit.aspx b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTemplateEdit.aspx new file mode 100644 index 00000000..6772b6bc --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTemplateEdit.aspx @@ -0,0 +1,71 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InspectTemplateEdit.aspx.cs" Inherits="FineUIPro.Web.TestRun.Feeding.InspectTemplateEdit" %> + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTemplateEdit.aspx.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTemplateEdit.aspx.cs new file mode 100644 index 00000000..608c5e31 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTemplateEdit.aspx.cs @@ -0,0 +1,84 @@ +using BLL; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.TestRun.Feeding +{ + public partial class InspectTemplateEdit : PageBase + { + /// + /// 主键 + /// + public string WorkInspectId + { + get { return (string)ViewState["WorkInspectId"]; } + set { ViewState["WorkInspectId"] = value; } + } + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.WorkInspectId = Request.Params["WorkInspectId"]; + PageInit(); + } + } + + /// + /// 默认绑定 + /// + public void PageInit() + { + if (!string.IsNullOrWhiteSpace(this.WorkInspectId)) + { + var model = Funs.DB.FeedingRun_WorkInspectTemplate.FirstOrDefault(x => x.WorkInspectId == this.WorkInspectId); + if (model != null) + { + txtWorkInspectName.Text = model.WorkInspectName; + txtRemark.Text = model.Remark; + ddlGroup.SelectedValue = model.GroupName; + txtSort.Text = model.Sort != null ? model.Sort.ToString() : Funs.DB.FeedingRun_WorkInspectTemplate.Count().ToString(); + } + } + else + { + txtSort.Text = (Funs.DB.FeedingRun_WorkInspectTemplate.Count() + 1).ToString(); + } + } + + /// + /// 保存 + /// + protected void btnSave_Click(object sender, EventArgs e) + { + try + { + var model = Funs.DB.FeedingRun_WorkInspectTemplate.FirstOrDefault(x => x.WorkInspectId == this.WorkInspectId); + if (model == null) model = new Model.FeedingRun_WorkInspectTemplate(); + model.WorkInspectName = txtWorkInspectName.Text; + model.GroupName = ddlGroup.SelectedValue; + model.Remark = txtRemark.Text; + model.Sort = int.Parse(txtSort.Text); + if (string.IsNullOrWhiteSpace(this.WorkInspectId)) + { + model.WorkInspectId = Guid.NewGuid().ToString(); + this.WorkInspectId = model.WorkInspectId; + model.AddUser = this.CurrUser.UserId; + model.AddTime = DateTime.Now; + Funs.DB.FeedingRun_WorkInspectTemplate.InsertOnSubmit(model); + } + Funs.DB.SubmitChanges(); + ShowNotify("保存成功!", MessageBoxIcon.Success); + PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(this.WorkInspectId) + ActiveWindow.GetHidePostBackReference()); + } + catch (Exception ex) + { + ShowNotify(ex.Message, MessageBoxIcon.Error); + } + } + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTemplateEdit.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTemplateEdit.aspx.designer.cs new file mode 100644 index 00000000..65426163 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectTemplateEdit.aspx.designer.cs @@ -0,0 +1,143 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.Feeding +{ + + + public partial class InspectTemplateEdit + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// SimpleForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form SimpleForm1; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// ToolbarFill1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill1; + + /// + /// btnSave 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSave; + + /// + /// hdAttachUrl 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.HiddenField hdAttachUrl; + + /// + /// hdId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.HiddenField hdId; + + /// + /// ContentPanel2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ContentPanel ContentPanel2; + + /// + /// Form2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form Form2; + + /// + /// txtWorkInspectName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextArea txtWorkInspectName; + + /// + /// txtRemark 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtRemark; + + /// + /// txtSort 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.NumberBox txtSort; + + /// + /// ddlGroup 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlGroup; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutAllPass.aspx b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutAllPass.aspx new file mode 100644 index 00000000..448e23ed --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutAllPass.aspx @@ -0,0 +1,119 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InspectWanderAboutAllPass.aspx.cs" Inherits="FineUIPro.Web.TestRun.Feeding.InspectWanderAboutAllPass" %> + + + + + + 全部通过 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutAllPass.aspx.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutAllPass.aspx.cs new file mode 100644 index 00000000..7bcdc8b1 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutAllPass.aspx.cs @@ -0,0 +1,156 @@ +using BLL; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.TestRun.Feeding +{ + public partial class InspectWanderAboutAllPass : PageBase + { + /// + /// 检查表主键 + /// + public string SubInspectId + { + get { return (string)ViewState["SubInspectId"]; } + set { ViewState["SubInspectId"] = value; } + } + + /// + /// 统一处理附件 + /// + public int UnifyImg + { + get { return (int)ViewState["UnifyImg"]; } + set { ViewState["UnifyImg"] = value; } + } + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.UnifyImg = 0; + this.SubInspectId = Request["SubInspectId"]; + PageInit(); + } + } + + + /// + /// 绑定数据 + /// + public void PageInit() + { + var data = from term in Funs.DB.FeedingRun_SubInspectTerm + join pro in Funs.DB.Base_Project on term.ProjectId equals pro.ProjectId + join ua in Funs.DB.Sys_User on term.DriverCharge equals ua.UserId + join ub in Funs.DB.Sys_User on term.DrivingManager equals ub.UserId + join uc in Funs.DB.Sys_User on term.ProjectManager equals uc.UserId + where term.SubInspectId == this.SubInspectId + select new + { + term.SubInspectId, + term.ProjectId, + pro.ProjectName, + pro.ProjectCode, + term.AddUser, + term.AddTime, + DriverChargeName = ua.UserName, + DrivingManagerName = ub.UserName, + ProjectManagerName = uc.UserName, + term.IsUnifyWanderAbout, + term.UnifyWanderAboutData, + term.UnifyWanderAboutOpinion + }; + if (data.Count() > 0) + { + var model = data.FirstOrDefault(); + //项目名称 + lblProjectName.Text = model.ProjectName; + //项目号 + lblProjectCode.Text = model.ProjectCode; + //装置开车负责人 + lblDriverChargeName.Text = model.DriverChargeName; + //开车经理 + lblDrivingManagerName.Text = model.DrivingManagerName; + //项目经理 + lblProjectManagerName.Text = model.ProjectManagerName; + //是否统一流转 + rblIsUnifyWanderAbout.SelectedValue = model.IsUnifyWanderAbout != null ? model.IsUnifyWanderAbout.ToString() : "1"; + //审核意见 + txtUnifyWanderAboutOpinion.Text = model.UnifyWanderAboutOpinion; + } + } + + /// + /// 确认 + /// + protected void btnConfirm_Click(object sender, EventArgs e) + { + try + { + if (Funs.DB.AttachFile.Count(x => x.ToKeyId == this.SubInspectId + "_unify" && x.AttachUrl != null && x.AttachUrl != "") == 0) + { + ShowNotify("请上传附件!", MessageBoxIcon.Warning); + return; + } + var term = Funs.DB.FeedingRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == this.SubInspectId); + if (term != null) + { + var isPass = int.Parse(rblIsUnifyWanderAbout.SelectedValue); + term.IsUnifyWanderAbout = isPass; + term.UnifyWanderAboutData = DateTime.Now; + term.UnifyWanderAboutOpinion = txtUnifyWanderAboutOpinion.Text; + term.DriverChargeIsAllPass = isPass; + term.DrivingManagerIsAllPass = isPass; + term.ProjectManagerIsAllPass = isPass; + term.WanderIsComplete = isPass; + term.InspectIsClose = isPass; + if (isPass == 1) + { + term.DriverChargeAllPassData = DateTime.Now; + term.DrivingManagerAllPassData = DateTime.Now; + term.ProjectManagerAllPassData = DateTime.Now; + term.WanderCompleteData = DateTime.Now; + term.InspectCloseData = DateTime.Now; + } + else + { + term.DriverChargeAllPassData = null; + term.DrivingManagerAllPassData = null; + term.ProjectManagerAllPassData = null; + term.WanderCompleteData = null; + term.InspectCloseData = null; + } + var termIetms = Funs.DB.FeedingRun_SubInspectTermItem.Where(x => x.SubInspectId == this.SubInspectId).ToList(); + if (termIetms.Count > 0) + { + foreach (var item in termIetms) + { + item.DriverChargeIsPass = isPass; + item.DrivingManagerIsPass = isPass; + item.ProjectManagerIsPass = isPass; + Funs.DB.SubmitChanges(); + } + } + ShowNotify("确认成功!", MessageBoxIcon.Success); + } + } + catch (Exception ex) + { + ShowNotify(ex.Message, MessageBoxIcon.Error); + } + } + + /// + /// 附件上传 + /// + protected void btnAttach_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", UnifyImg, this.SubInspectId + "_unify", Const.TestRunMenuId))); + } + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutAllPass.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutAllPass.aspx.designer.cs new file mode 100644 index 00000000..3b4bc8b6 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutAllPass.aspx.designer.cs @@ -0,0 +1,197 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.Feeding +{ + + + public partial class InspectWanderAboutAllPass + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// SimpleForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form SimpleForm1; + + /// + /// ContentPanel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ContentPanel ContentPanel1; + + /// + /// Form2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form Form2; + + /// + /// lblProjectName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblProjectName; + + /// + /// lblProjectCode 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblProjectCode; + + /// + /// lblDriverChargeName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblDriverChargeName; + + /// + /// lblDrivingManagerName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblDrivingManagerName; + + /// + /// lblProjectManagerName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblProjectManagerName; + + /// + /// lblWorkPackName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblWorkPackName; + + /// + /// txtUnifyWanderAboutOpinion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextArea txtUnifyWanderAboutOpinion; + + /// + /// rblIsUnifyWanderAbout 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.RadioButtonList rblIsUnifyWanderAbout; + + /// + /// Panel3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel3; + + /// + /// lblAttach 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblAttach; + + /// + /// btnAttach 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnAttach; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// ToolbarFill1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill1; + + /// + /// btnConfirm 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnConfirm; + + /// + /// WindowAtt 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window WindowAtt; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutAllPassList.aspx b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutAllPassList.aspx new file mode 100644 index 00000000..a6faca55 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutAllPassList.aspx @@ -0,0 +1,137 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InspectWanderAboutAllPassList.aspx.cs" Inherits="FineUIPro.Web.TestRun.Feeding.InspectWanderAboutAllPassList" %> + + + + + + + + + 检查表流转全部通过 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutAllPassList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutAllPassList.aspx.cs new file mode 100644 index 00000000..9827ed08 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutAllPassList.aspx.cs @@ -0,0 +1,173 @@ +using BLL; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.TestRun.Feeding +{ + public partial class InspectWanderAboutAllPassList : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + InitTreeMenu(); + } + } + + #region 数加载 + + /// + /// 加载树 + /// + private void InitTreeMenu() + { + this.tvControlItem.Nodes.Clear(); + TreeNode rootNode = new TreeNode(); + rootNode.Text = "检查表"; + rootNode.NodeID = "0"; + rootNode.Expanded = true; + rootNode.ToolTip = ""; + rootNode.EnableClickEvent = true; + this.tvControlItem.Nodes.Add(rootNode); + var inspectTerms = Funs.DB.FeedingRun_SubInspectTerm.Where(x => x.InspectionIsAllPass == 1).ToList(); + if (inspectTerms.Count == 0) return; + var subInstallationIds = inspectTerms.ConvertAll(x => x.InstallationId); + var list = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 1 && subInstallationIds.Contains(x.PreRunId)); + if (list.Count() > 0) + { + foreach (var item in list) + { + TreeNode rootOneNode = new TreeNode(); + rootOneNode.NodeID = item.PreRunId; + rootOneNode.Text = item.PreRunName; + rootOneNode.ToolTip = item.PreRunName; + rootOneNode.CommandName = ""; + rootOneNode.EnableClickEvent = true; + rootOneNode.EnableExpandEvent = false; + rootNode.Nodes.Add(rootOneNode); + rootOneNode.Expanded = true; + } + } + } + + /// + /// 树点击 + /// + protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) + { + BindGrid(); + } + + #endregion + + #region 数据绑定 + + /// + /// 绑定数据 + /// + public void BindGrid() + { + string sqlStr = $"select a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.AddUser,a.AddTime,c.UserName as DriverChargeName,d.UserName as DrivingManagerName,e.UserName as ProjectManagerName,IsUnifyWanderAbout,(case IsUnifyWanderAbout when 1 then '是' else '否' end) as IsUnifyWanderAboutName from FeedingRun_SubInspectTerm as a inner join Base_Project as b on a.ProjectId=b.ProjectId inner join Sys_User as c on c.UserId=a.DriverCharge inner join Sys_User as d on d.UserId=a.DrivingManager inner join Sys_User as e on e.UserId = a.ProjectManager where 1 = 1 and a.InspectionIsAllPass = 1 and a.ProjectId='{this.CurrUser.LoginProjectId}' "; + if (!string.IsNullOrWhiteSpace(this.tvControlItem.SelectedNodeID)) + { + sqlStr += $"and a.InstallationId='{this.tvControlItem.SelectedNodeID}'"; + } + List listStr = new List(); + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(sqlStr); + Grid1.RecordCount = tb.Rows.Count; + var table = this.GetPagedDataTable(Grid1, tb); + Grid1.DataSource = table; + Grid1.DataBind(); + } + + /// + /// 分页 + /// + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) + { + Grid1.PageIndex = e.NewPageIndex; + BindGrid(); + } + + /// + /// 双击事件 + /// + protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) + { + btnMenuAllPass_Click(null, null); + } + + /// + /// 分页下拉框 + /// + protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) + { + Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); + BindGrid(); + } + + /// + /// 排序 + /// + protected void Grid1_Sort(object sender, GridSortEventArgs e) + { + BindGrid(); + } + + #endregion + + #region 按钮和事件 + + /// + /// 查询 + /// + protected void btnQuery_Click(object sender, EventArgs e) + { + BindGrid(); + } + + /// + /// 检查全部通过 + /// + protected void btnAllPass_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请选择记录!", MessageBoxIcon.Warning); + return; + } + if (Grid1.SelectedRowIndexArray.Length > 1) + { + Alert.ShowInTop("只可选择一条记录!", MessageBoxIcon.Warning); + return; + } + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectWanderAboutAllPass.aspx?SubInspectId={0}", Grid1.DataKeys[Grid1.SelectedRowIndex][0].ToString(), "检查全部通过 - "))); + } + + /// + /// 右击检查全部通过 + /// + protected void btnMenuAllPass_Click(object sender, EventArgs e) + { + btnAllPass_Click(null, null); + } + + /// + /// 关闭 + /// + protected void Window1_Close(object sender, WindowCloseEventArgs e) + { + BindGrid(); + } + + #endregion + + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutAllPassList.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutAllPassList.aspx.designer.cs new file mode 100644 index 00000000..b0c2557c --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutAllPassList.aspx.designer.cs @@ -0,0 +1,152 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.Feeding +{ + + + public partial class InspectWanderAboutAllPassList + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// panelLeftRegion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel panelLeftRegion; + + /// + /// tvControlItem 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Tree tvControlItem; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// btnQuery 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnQuery; + + /// + /// btnAllPass 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnAllPass; + + /// + /// ToolbarSeparator1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1; + + /// + /// ToolbarText1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarText ToolbarText1; + + /// + /// ddlPageSize 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlPageSize; + + /// + /// Window1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window Window1; + + /// + /// Menu1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Menu Menu1; + + /// + /// btnMenuAllPass 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuAllPass; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutConfirm.aspx b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutConfirm.aspx new file mode 100644 index 00000000..7e8af176 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutConfirm.aspx @@ -0,0 +1,137 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InspectWanderAboutConfirm.aspx.cs" Inherits="FineUIPro.Web.TestRun.Feeding.InspectWanderAboutConfirm" %> + + + + + + 签字确认 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutConfirm.aspx.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutConfirm.aspx.cs new file mode 100644 index 00000000..1acd2add --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutConfirm.aspx.cs @@ -0,0 +1,651 @@ +using BLL; +using Newtonsoft.Json.Linq; +using NPOI.SS.UserModel; +using NPOI.SS.Util; +using NPOI.XSSF.UserModel; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Web; +using System.Web.UI; + +namespace FineUIPro.Web.TestRun.Feeding +{ + public partial class InspectWanderAboutConfirm : PageBase + { + /// + /// 检查表主键 + /// + public string SubInspectId + { + get { return (string)ViewState["SubInspectId"]; } + set { ViewState["SubInspectId"] = value; } + } + + /// + /// 类型 + /// + public int ConfirmType + { + get { return (int)ViewState["ConfirmType"]; } + set { ViewState["ConfirmType"] = value; } + } + + /// + /// 类型名称 + /// + public string ConfirmTypeName + { + get { return (string)ViewState["ConfirmTypeName"]; } + set { ViewState["ConfirmTypeName"] = value; } + } + + protected void Page_Load(object sender, EventArgs e) + { + + if (!IsPostBack) + { + this.SubInspectId = Request.Params["SubInspectId"]; + this.ConfirmType = int.Parse(Request.Params["ConfirmType"]); + + if (this.ConfirmType == 1) + { + this.ConfirmTypeName = "装置开车负责人"; + } + if (this.ConfirmType == 2) + { + this.ConfirmTypeName = "开车经理"; + } + if (this.ConfirmType == 3) + { + this.ConfirmTypeName = "项目经理"; + } + this.BindGrid(); + } + } + + + #region 数据绑定 + + /// + /// 绑定数据 + /// + public void BindGrid(int isPass = -1) + { + var term = Funs.DB.FeedingRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == this.SubInspectId); + if (term != null) + { + lblIsUnifyWanderAbout.Text = term.IsUnifyWanderAbout == 1 ? "是" : "否"; + lblUnifyWanderAboutData.Text = term.UnifyWanderAboutData != null ? term.UnifyWanderAboutData.Value.ToString("yyyy-MM-dd") : string.Empty; + unifyfile.Hidden = term.IsUnifyWanderAbout == 1 ? false : true; + } + var data = new List(); + var queryData = from a in Funs.DB.FeedingRun_SubInspectTermItem + join b in Funs.DB.Sys_User on a.InspectedUser equals b.UserId + where a.SubInspectId == this.SubInspectId + select new { a, b }; + if (queryData.Count() > 0) + { + var list = queryData.ToList(); + foreach (var item in list) + { + var model = new ConfirmIsPass(); + model.TermItemId = item.a.TermItemId; + model.SubInspectId = item.a.SubInspectId; + model.WorkInspectName = item.a.WorkInspectName; + model.ConfirmType = this.ConfirmType; + model.ConfirmTypeName = this.ConfirmTypeName; + model.InspectedUser = item.a.InspectedUser; + model.InspectedUserName = item.b.UserName; + model.InspectionResults = item.a.InspectionResults.Value; + //1=装置开车负责人=开车经理=项目经理 + if (this.ConfirmType == 1) + { + model.IsPass = isPass != -1 ? isPass : item.a.DriverChargeIsPass; + model.Remark = item.a.DriverChargeRemark; + } + if (this.ConfirmType == 2) + { + model.IsPass = isPass != -1 ? isPass : item.a.DrivingManagerIsPass; + model.Remark = item.a.DrivingManagerRemark; + } + if (this.ConfirmType == 3) + { + model.IsPass = isPass != -1 ? isPass : item.a.ProjectManagerIsPass; + model.Remark = item.a.ProjectManagerRemark; + } + data.Add(model); + } + } + Grid1.DataSource = data; + Grid1.DataBind(); + titleName.Title = this.ConfirmType == 1 ? "装置开车负责人确认签字" : this.ConfirmType == 2 ? "开车经理确认签字" : this.ConfirmType == 3 ? "项目经理确认签字" : ""; + } + + /// + /// 排序 + /// + protected void Grid1_Sort(object sender, GridSortEventArgs e) + { + Grid1.SortDirection = e.SortDirection; + Grid1.SortField = e.SortField; + BindGrid(); + } + + #endregion + + #region 按钮和事件 + + /// + /// 保存 + /// + protected void btnSave_Click(object sender, EventArgs e) + { + try + { + JArray mergedData = Grid1.GetMergedData(); + foreach (JObject mergedRow in mergedData) + { + string status = mergedRow.Value("status"); + JObject values = mergedRow.Value("values"); + int i = mergedRow.Value("index"); + GridRow row = Grid1.Rows[i]; + System.Web.UI.WebControls.RadioButtonList rblIsPass = (System.Web.UI.WebControls.RadioButtonList)row.FindControl("rblIsPass"); + var termItemId = this.Grid1.Rows[i].DataKeys[0].ToString(); + var inspectedUser = this.Grid1.Rows[i].DataKeys[1].ToString(); + var model = Funs.DB.FeedingRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == termItemId && x.InspectedUser == inspectedUser); + if (model != null) + { + if (!string.IsNullOrWhiteSpace(rblIsPass.SelectedValue)) + { + //1=装置开车负责人=开车经理=项目经理 + if (this.ConfirmType == 1) + { + model.DriverChargeIsPass = int.Parse(rblIsPass.SelectedValue); + model.DriverChargeRemark = values.Value("Remark"); + } + else if (this.ConfirmType == 2) + { + model.DrivingManagerIsPass = int.Parse(rblIsPass.SelectedValue); + model.DrivingManagerRemark = values.Value("Remark"); + } + else if (this.ConfirmType == 3) + { + model.ProjectManagerIsPass = int.Parse(rblIsPass.SelectedValue); + model.ProjectManagerRemark = values.Value("Remark"); + } + } + Funs.DB.SubmitChanges(); + } + } + var subInspectId = this.Grid1.Rows[0].DataKeys[3].ToString(); + var subModel = Funs.DB.FeedingRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == subInspectId); + if (subModel != null) + { + //1=装置开车负责人=开车经理=项目经理 + if (this.ConfirmType == 1) + { + if (Funs.DB.FeedingRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && x.DriverChargeIsPass.GetValueOrDefault() != 1) == 0) + { + subModel.DriverChargeIsAllPass = 1; + subModel.DriverChargeAllPassData = DateTime.Now; + } + else + { + subModel.DriverChargeIsAllPass = 0; + subModel.DriverChargeAllPassData = null; + } + } + else if (this.ConfirmType == 2) + { + if (Funs.DB.FeedingRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && x.DrivingManagerIsPass.GetValueOrDefault() != 1) == 0) + { + subModel.DrivingManagerIsAllPass = 1; + subModel.DrivingManagerAllPassData = DateTime.Now; + } + else + { + subModel.DrivingManagerIsAllPass = 0; + subModel.DrivingManagerAllPassData = null; + } + } + else if (this.ConfirmType == 3) + { + if (Funs.DB.FeedingRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && x.ProjectManagerIsPass.GetValueOrDefault() != 1) == 0) + { + subModel.ProjectManagerIsAllPass = 1; + subModel.ProjectManagerAllPassData = DateTime.Now; + } + else + { + subModel.ProjectManagerIsAllPass = 0; + subModel.ProjectManagerAllPassData = null; + } + } + //判断是否全部通过 + if (subModel.DriverChargeIsAllPass == 1 && subModel.DrivingManagerIsAllPass == 1 && subModel.ProjectManagerIsAllPass == 1) + { + subModel.InspectIsClose = 1; + subModel.InspectCloseData = DateTime.Now; + subModel.WanderIsComplete = 1; + subModel.WanderCompleteData = DateTime.Now; + } + else + { + subModel.InspectIsClose = 0; + subModel.InspectCloseData = null; + subModel.WanderIsComplete = 0; + subModel.WanderCompleteData = null; + } + } + Funs.DB.SubmitChanges(); + BindGrid(); + ShowNotify("保存成功!"); + } + catch (Exception ex) + { + ShowNotify(ex.Message, MessageBoxIcon.Error); + } + } + + /// + /// 导出 + /// + protected void btnExport_Click(object sender, EventArgs e) + { + string rootPath = Server.MapPath("~/") + Const.ExcelUrl; + //导出文件 + string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\"; + if (!Directory.Exists(filePath)) + { + Directory.CreateDirectory(filePath); + } + string ReportFileName = filePath + this.ConfirmTypeName + "确认签字.xlsx"; + //获取工作包检查表 + var termData = from a in Funs.DB.FeedingRun_SubInspectTerm + join b in Funs.DB.Base_Project on a.ProjectId equals b.ProjectId + join zz in Funs.DB.PreRun_SysDevice on a.InstallationId equals zz.PreRunId//装置 + select new { a.SubInspectId, a.ProjectId, b.ProjectName, b.ShortName, b.ProjectCode, a.InstallationId, a.DriverCharge, a.DrivingManager, a.ProjectManager, a.InspectionIsAllPass, a.DriverChargeIsAllPass, a.DrivingManagerIsAllPass, a.ProjectManagerIsAllPass, a.InspectTime, a.AddUser, a.AddTime, zzName = zz.PreRunName }; + if (termData != null) + { + var termModel = termData.FirstOrDefault(); + //获取工作包检查项表 + var termItems = Funs.DB.FeedingRun_SubInspectTermItem.Where(x => x.SubInspectId == this.SubInspectId).OrderBy(x => x.Sort).ToList(); + int rowIndex = 0; + XSSFWorkbook hssfworkbook = new XSSFWorkbook(); + XSSFSheet ws = (XSSFSheet)hssfworkbook.CreateSheet(this.ConfirmTypeName + "确认签字"); + + #region 列宽 + + ws.SetColumnWidth(0, (7 * 256)); + ws.SetColumnWidth(1, (4 * 256)); + ws.SetColumnWidth(2, (4 * 256)); + ws.SetColumnWidth(3, (4 * 256)); + ws.SetColumnWidth(4, (10 * 256)); + ws.SetColumnWidth(5, (10 * 256)); + ws.SetColumnWidth(6, (10 * 256)); + ws.SetColumnWidth(7, (10 * 256)); + ws.SetColumnWidth(8, (3 * 256)); + ws.SetColumnWidth(9, (3 * 256)); + ws.SetColumnWidth(10, (3 * 256)); + ws.SetColumnWidth(11, (3 * 256)); + ws.SetColumnWidth(12, (3 * 256)); + ws.SetColumnWidth(13, (3 * 256)); + ws.SetColumnWidth(14, (3 * 256)); + ws.SetColumnWidth(15, (3 * 256)); + ws.SetColumnWidth(16, (3 * 256)); + ws.SetColumnWidth(17, (3 * 256)); + + #endregion + + #region 样式 + //头部样式居中 + ICellStyle titleStyle = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 14, true, true); + //头部样式靠左 + ICellStyle leftTitleStyle = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Left, 14, true, true); + //公共样式 + ICellStyle style = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10.5, true); + //公共样式靠左 + ICellStyle leftStyle = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Left, 10.5, true); + //公共样式靠左上对其 + ICellStyle leftTopStyle = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, HorizontalAlignment.Left, 10.5, true); + //公共样式加粗 + ICellStyle styleBold = SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10.5, true, true); + + #endregion + + #region 头部 + + ws = ExcelCreateRowTitle(ws, hssfworkbook, style, rowIndex, rowIndex + 5, 0, 17); + //行1 + var region = new CellRangeAddress(rowIndex, rowIndex + 2, 0, 0); + ws.AddMergedRegion(region); + byte[] bytes = File.ReadAllBytes(Server.MapPath("~/") + "Images\\Template.png"); + int pictureIdx = hssfworkbook.AddPicture(bytes, PictureType.JPEG); + IDrawing patriarch = ws.CreateDrawingPatriarch(); + IClientAnchor anchor = patriarch.CreateAnchor(0, 0, 0, 0, 0, rowIndex, 1, rowIndex + 2); + IPicture pict = patriarch.CreatePicture(anchor, pictureIdx); + //pict.Resize(); + region = new CellRangeAddress(rowIndex, rowIndex + 2, 1, 3); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(1).SetCellValue("中国五环工程有限公司"); + ws.GetRow(rowIndex).GetCell(1).CellStyle = + ws.GetRow(rowIndex).GetCell(2).CellStyle = + ws.GetRow(rowIndex).GetCell(3).CellStyle = leftTitleStyle; + region = new CellRangeAddress(rowIndex, rowIndex, 4, 7); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(4).SetCellValue(termModel.ProjectName); + ws.GetRow(rowIndex).GetCell(4).CellStyle = style; + region = new CellRangeAddress(rowIndex, rowIndex, 8, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(8).SetCellValue("项目号"); + ws.GetRow(rowIndex).GetCell(8).CellStyle = style; + region = new CellRangeAddress(rowIndex, rowIndex, 13, 17); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(13).SetCellValue(termModel.ProjectCode); + ws.GetRow(rowIndex).GetCell(13).CellStyle = style; + region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 4, 7); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 1).GetCell(4).SetCellValue($"({termModel.zzName})"); + ws.GetRow(rowIndex + 1).GetCell(4).CellStyle = style; + region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 8, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 1).GetCell(8).SetCellValue("(文件号)"); + ws.GetRow(rowIndex + 1).GetCell(8).CellStyle = style; + region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 13, 17); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 1).GetCell(13).SetCellValue(""); + ws.GetRow(rowIndex + 1).GetCell(13).CellStyle = style; + region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 4, 7); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 2).GetCell(4).SetCellValue($"投料试车条件检查表"); + ws.GetRow(rowIndex + 2).GetCell(4).CellStyle = titleStyle; + region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 8, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 2).GetCell(8).SetCellValue("第 1 页"); + ws.GetRow(rowIndex + 2).GetCell(8).CellStyle = style; + region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 13, 17); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 2).GetCell(13).SetCellValue("共 1 页"); + ws.GetRow(rowIndex + 2).GetCell(13).CellStyle = style; + //行4,行5 + region = new CellRangeAddress(rowIndex + 3, rowIndex + 4, 0, 2); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 3).GetCell(0).CellStyle = style; + ws.GetRow(rowIndex + 3).GetCell(0).SetCellValue(""); + region = new CellRangeAddress(rowIndex + 3, rowIndex + 4, 3, 11); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 3).GetCell(3).CellStyle = leftStyle; + ws.GetRow(rowIndex + 3).GetCell(3).SetCellValue(""); + region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 12, 17); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 3).GetCell(12).CellStyle = style; + ws.GetRow(rowIndex + 3).GetCell(12).SetCellValue("检查日期"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 12, 17); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(12).CellStyle = style; + ws.GetRow(rowIndex + 4).GetCell(12).SetCellValue(DateTime.Now.ToString("yyyy年MM月dd日")); + //行6 + ws.GetRow(rowIndex + 5).GetCell(0).CellStyle = styleBold; + ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("序号"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 1, 7); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(1).CellStyle = styleBold; + ws.GetRow(rowIndex + 5).GetCell(1).SetCellValue("检查项目"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 8, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(8).CellStyle = styleBold; + ws.GetRow(rowIndex + 5).GetCell(8).SetCellValue("结果"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 13, 17); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(13).CellStyle = styleBold; + ws.GetRow(rowIndex + 5).GetCell(13).SetCellValue("备注"); + + #endregion + + #region 表格 + + var start = rowIndex + 6; + var end = rowIndex + 5 + termItems.Count; + + ws = ExcelCreateRowTitle(ws, hssfworkbook, style, start, end, 0, 17); + + //合并单元格 + for (int hb = start; hb <= end; hb++) + { + region = new CellRangeAddress(hb, hb, 1, 7); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 8, 12); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 13, 17); + ws.AddMergedRegion(region); + } + + //数据 + int num = 1; + var dataIndex = 6; + foreach (var item in termItems) + { + //序号 + ws.GetRow(dataIndex).GetCell(0).SetCellValue(num); + //检查项目 + ws.GetRow(dataIndex).GetCell(1).SetCellValue(item.WorkInspectName); + ws.GetRow(dataIndex).GetCell(1).CellStyle = leftStyle; + //结果 + ws.GetRow(dataIndex).GetCell(8).SetCellValue(""); + //备注 + ws.GetRow(dataIndex).GetCell(13).SetCellValue(""); + dataIndex++; + num++; + } + rowIndex = start + termItems.Count; + + #endregion + + #region 尾部 + + ws = ExcelCreateRowTitle(ws, hssfworkbook, style, rowIndex, rowIndex, 0, 17, 100); + //行1 + ws.GetRow(rowIndex).GetCell(0).SetCellValue("结论"); + region = new CellRangeAddress(rowIndex, rowIndex, 1, 17); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(1).SetCellValue("是否同意进行(包括整改意见):"); + ws.GetRow(rowIndex).GetCell(1).CellStyle = leftTopStyle; + //行2 + ws = ExcelCreateRowTitle(ws, hssfworkbook, style, rowIndex + 1, rowIndex + 1, 0, 17, 80); + ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue("检查人员"); + region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 1, 4); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 1).GetCell(1).SetCellValue("施工单位:"); + ws.GetRow(rowIndex + 1).GetCell(1).CellStyle = leftTopStyle; + region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 5, 6); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 1).GetCell(5).SetCellValue("装置开车负责人:"); + ws.GetRow(rowIndex + 1).GetCell(5).CellStyle = leftTopStyle; + region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 7, 11); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 1).GetCell(7).SetCellValue("开车经理:"); + ws.GetRow(rowIndex + 1).GetCell(7).CellStyle = leftTopStyle; + region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 12, 17); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 1).GetCell(12).SetCellValue("项目经理:"); + ws.GetRow(rowIndex + 1).GetCell(12).CellStyle = leftTopStyle; + + #endregion + + ws.PrintSetup.Landscape = false; + ws.PrintSetup.PaperSize = 9; + ws.ForceFormulaRecalculation = true; + using (FileStream filess = File.OpenWrite(ReportFileName)) + { + hssfworkbook.Write(filess); + } + FileInfo filet = new FileInfo(ReportFileName); + Response.Clear(); + Response.Charset = "GB2312"; + Response.ContentEncoding = System.Text.Encoding.UTF8; + // 添加头信息,为"文件下载/另存为"对话框指定默认文件名 + Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode(this.ConfirmTypeName + "确认签字.xlsx")); + // 添加头信息,指定文件大小,让浏览器能够显示下载进度 + Response.AddHeader("Content-Length", filet.Length.ToString()); + // 指定返回的是一个不能被客户端读取的流,必须被下载 + Response.ContentType = "application/ms-excel"; + // 把文件流发送到客户端 + Response.WriteFile(filet.FullName); + // 停止页面的执行 + Response.End(); + } + } + + /// + /// 行加载事件 + /// + protected void Grid1_RowDataBound(object sender, GridRowEventArgs e) + { + System.Web.UI.WebControls.RadioButtonList rblIsPass = (System.Web.UI.WebControls.RadioButtonList)Grid1.Rows[e.RowIndex].FindControl("rblIsPass"); + int isPass = 1; + if (Grid1.DataKeys[e.RowIndex][4] != null) isPass = int.Parse(Grid1.DataKeys[e.RowIndex][4].ToString()); + rblIsPass.SelectedValue = isPass.ToString(); + if (rblIsPass.SelectedValue != "1") + { + rblIsAllPass.SelectedValue = "0"; + } + } + + /// + /// 实体绑定 + /// + public class ConfirmIsPass + { + /// + /// 检查项主键 + /// + public string TermItemId { get; set; } + /// + /// 检查表主键 + /// + public string SubInspectId { get; set; } + /// + /// 检查人 + /// + public string InspectedUser { get; set; } + /// + /// 检查人名称 + /// + public string InspectedUserName { get; set; } + /// + /// 检查结果 + /// + public int InspectionResults { get; set; } + /// + /// 名称 + /// + public string WorkInspectName { get; set; } + /// + /// 确认类型1=装置开车负责人2=开车经理3=项目经理 + /// + public int ConfirmType { get; set; } + /// + /// 确认类型名称 + /// + public string ConfirmTypeName { get; set; } + /// + /// 是否通过 + /// + public int? IsPass { get; set; } + /// + /// 备注 + /// + public string Remark { get; set; } + + } + + /// + /// 检查项确认事件 + /// + protected void rblIsPass_SelectedIndexChanged(object sender, EventArgs e) + { + for (int i = 0; i < Grid1.Rows.Count; i++) + { + System.Web.UI.WebControls.RadioButtonList rblIsPass = (System.Web.UI.WebControls.RadioButtonList)Grid1.Rows[i].FindControl("rblIsPass"); + if (rblIsPass.SelectedValue != "1") + { + rblIsAllPass.SelectedValue = "0"; + } + } + } + + /// + /// 是否同意进行预试车活动事件 + /// + protected void rblIsAllPass_SelectedIndexChanged(object sender, EventArgs e) + { + BindGrid(int.Parse(rblIsAllPass.SelectedValue)); + } + + /// + /// 附件上传 + /// + protected void btnAttach_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=0&toKeyId={0}&path=FileUpload/CheckControl&menuId={1}", $"{this.SubInspectId}_{this.ConfirmType}", Const.TestRunMenuId))); + } + + /// + /// 统一流转通过附件查看 + /// + protected void btnUnifyUpload_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type=-1&toKeyId={0}&path=FileUpload/CheckControl&menuId={1}", this.SubInspectId + "_unify", Const.TestRunMenuId))); + } + + #endregion + + #region 私有方法 + + /// + /// 创建样式 + /// + /// + public static ICellStyle SetExcelStyle(XSSFWorkbook wb, BorderStyle Bottom, BorderStyle Left, BorderStyle Right, BorderStyle Top, VerticalAlignment VerAig, HorizontalAlignment HorAig, double FontSize, bool WrapText = true, bool Bold = false, string FontName = "宋体") + { + ICellStyle style = wb.CreateCellStyle(); + style.BorderBottom = Bottom; + style.BorderLeft = Left; + style.BorderRight = Right; + style.BorderTop = Top; + style.VerticalAlignment = VerAig; + style.Alignment = HorAig; + IFont font = wb.CreateFont(); + font.FontHeightInPoints = FontSize; + font.IsBold = Bold; + font.FontName = FontName; + style.SetFont(font); + style.WrapText = WrapText; + return style; + } + + /// + /// 创建头部 + /// + /// + private XSSFSheet ExcelCreateRowTitle(XSSFSheet ws, XSSFWorkbook hssfworkbook, ICellStyle style, int sRows, int eRows, int cStart, int cEnd, float height = 21) + { + for (int i = sRows; i <= eRows; i++) + { + ws.CreateRow(i); + ws.GetRow(i).HeightInPoints = height; + for (int j = cStart; j <= cEnd; j++) + { + ws.GetRow(i).CreateCell(j); + ws.GetRow(i).CreateCell(j).CellStyle = style; + } + } + return ws; + } + + #endregion + + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutConfirm.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutConfirm.aspx.designer.cs new file mode 100644 index 00000000..40e4309b --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutConfirm.aspx.designer.cs @@ -0,0 +1,233 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.Feeding +{ + + + public partial class InspectWanderAboutConfirm + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// SimpleForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form SimpleForm1; + + /// + /// plApprove2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.FormRow plApprove2; + + /// + /// titleName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ContentPanel titleName; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// ToolbarFill 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill; + + /// + /// btnExport 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnExport; + + /// + /// btnSave 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSave; + + /// + /// rblIsPass 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.RadioButtonList rblIsPass; + + /// + /// txtRemark 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtRemark; + + /// + /// ContentPanel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ContentPanel ContentPanel1; + + /// + /// Form2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form Form2; + + /// + /// rblIsAllPass 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.RadioButtonList rblIsAllPass; + + /// + /// Panel3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel3; + + /// + /// lblAttach 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblAttach; + + /// + /// btnAttach 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnAttach; + + /// + /// lblIsUnifyWanderAbout 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblIsUnifyWanderAbout; + + /// + /// lblUnifyWanderAboutData 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblUnifyWanderAboutData; + + /// + /// unifyfile 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.FormRow unifyfile; + + /// + /// Panel2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel2; + + /// + /// btnUnifyUpload 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnUnifyUpload; + + /// + /// WindowAtt 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window WindowAtt; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutList.aspx b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutList.aspx new file mode 100644 index 00000000..6cd548f6 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutList.aspx @@ -0,0 +1,139 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="InspectWanderAboutList.aspx.cs" Inherits="FineUIPro.Web.TestRun.Feeding.InspectWanderAboutList" %> + + + + + + + + + 检查表流转 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutList.aspx.cs new file mode 100644 index 00000000..7ecbe513 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutList.aspx.cs @@ -0,0 +1,192 @@ +using BLL; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.TestRun.Feeding +{ + public partial class InspectWanderAboutList : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + InitTreeMenu(); + } + } + + + #region 数加载 + + /// + /// 加载树 + /// + private void InitTreeMenu() + { + this.tvControlItem.Nodes.Clear(); + TreeNode rootNode = new TreeNode(); + rootNode.Text = "检查表"; + rootNode.NodeID = "0"; + rootNode.Expanded = true; + rootNode.ToolTip = ""; + rootNode.EnableClickEvent = true; + this.tvControlItem.Nodes.Add(rootNode); + var inspectTerms = Funs.DB.FeedingRun_SubInspectTerm.Where(x => (x.DriverCharge == this.CurrUser.UserId && x.InspectionIsAllPass == 1) || (x.DrivingManager == this.CurrUser.UserId && x.InspectionIsAllPass == 1) || (x.ProjectManager == this.CurrUser.UserId && x.InspectionIsAllPass == 1)).ToList(); + if (inspectTerms.Count == 0) return; + var subInstallationIds = inspectTerms.ConvertAll(x => x.InstallationId); + var list = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 1 && subInstallationIds.Contains(x.PreRunId)); + if (list.Count() > 0) + { + var ids = list.Select(x => x.ProcessesId).ToList(); + ids.AddRange(list.Select(x => x.PreRunId).ToList()); + ids = ids.Distinct().ToList(); + var syslist = Funs.DB.PreRun_SysDevice.Where(x => ids.Contains(x.PreRunId)).ToList(); + if (syslist.Count > 0) + { + foreach (var item in list) + { + TreeNode rootOneNode = new TreeNode(); + rootOneNode.NodeID = item.PreRunId; + rootOneNode.Text = item.PreRunName; + rootOneNode.ToolTip = item.PreRunName; + rootOneNode.CommandName = ""; + rootOneNode.EnableClickEvent = true; + rootOneNode.EnableExpandEvent = false; + rootNode.Nodes.Add(rootOneNode); + rootOneNode.Expanded = true; + } + } + } + } + + /// + /// 树点击 + /// + protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) + { + BindGrid(); + } + + #endregion + + #region 数据绑定 + + /// + /// 绑定数据 + /// + public void BindGrid() + { + //装置开车负责人 + string driverChargeStr = $"select NEWID() as Id,a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.DriverCharge,a.DrivingManager,a.ProjectManager,1 as ConfirmType,'装置开车负责人' as ConfirmName,(select count (1) from FeedingRun_SubInspectTermItem as t where t.SubInspectId=a.SubInspectId and t.DriverChargeIsPass is null) as WaitConfirmNum,(select count (1) from FeedingRun_SubInspectTermItem as t where t.SubInspectId=a.SubInspectId and t.DriverChargeIsPass=1) as PassConfirmNum,(select count (1) from FeedingRun_SubInspectTermItem as t where t.SubInspectId=a.SubInspectId and t.DriverChargeIsPass=0) as FailConfirmNum,a.AddUser,a.AddTime,a.IsUnifyWanderAbout,(case IsUnifyWanderAbout when 1 then '是' else '否' end) as IsUnifyWanderAboutName,a.InstallationId from FeedingRun_SubInspectTerm as a inner join Base_Project as b on a.ProjectId=b.ProjectId where 1=1 and a.InspectionIsAllPass=1 and a.ProjectId='{this.CurrUser.LoginProjectId}' and a.DriverCharge='{this.CurrUser.UserId}' "; + //开车经理 + string drivingManagerStr = $"select NEWID() as Id,a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.DriverCharge,a.DrivingManager,a.ProjectManager,2 as ConfirmType,'开车经理' as ConfirmName,(select count(1) from FeedingRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.DrivingManagerIsPass is null) as WaitConfirmNum,(select count(1) from FeedingRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.DrivingManagerIsPass = 1) as PassConfirmNum,(select count(1) from FeedingRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.DrivingManagerIsPass = 0) as FailConfirmNum,a.AddUser,a.AddTime,a.IsUnifyWanderAbout,(case IsUnifyWanderAbout when 1 then '是' else '否' end) as IsUnifyWanderAboutName,a.InstallationId from FeedingRun_SubInspectTerm as a inner join Base_Project as b on a.ProjectId = b.ProjectId where 1 = 1 and a.InspectionIsAllPass = 1 and a.ProjectId = '{this.CurrUser.LoginProjectId}' and a.DrivingManager = '{this.CurrUser.UserId}' "; + //项目经理 + string projectManagerStr = $"select NEWID() as Id,a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.DriverCharge,a.DrivingManager,a.ProjectManager,3 as ConfirmType,'项目经理' as ConfirmName,(select count(1) from FeedingRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.ProjectManagerIsPass is null) as WaitConfirmNum,(select count(1) from FeedingRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.ProjectManagerIsPass = 1) as PassConfirmNum,(select count(1) from FeedingRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.ProjectManagerIsPass = 0) as FailConfirmNum,a.AddUser,a.AddTime,a.IsUnifyWanderAbout,(case IsUnifyWanderAbout when 1 then '是' else '否' end) as IsUnifyWanderAboutName,a.InstallationId from FeedingRun_SubInspectTerm as a inner join Base_Project as b on a.ProjectId = b.ProjectId where 1 = 1 and a.InspectionIsAllPass = 1 and a.InspectionIsAllPass = 1 and a.InspectionIsAllPass = 1 and a.ProjectId = '{this.CurrUser.LoginProjectId}' and a.ProjectManager = '{this.CurrUser.UserId}' "; + + if (!string.IsNullOrWhiteSpace(this.tvControlItem.SelectedNodeID)) + { + var systemId = this.tvControlItem.SelectedNodeID.Split('|').Last(); + driverChargeStr += $"and a.InstallationId='{systemId}'"; + drivingManagerStr += $"and a.InstallationId='{systemId}'"; + projectManagerStr += $"and a.InstallationId='{systemId}'"; + } + var allSql = $"select * from ({driverChargeStr} union all {drivingManagerStr} union all {projectManagerStr}) as t order by t.ConfirmType asc"; + List listStr = new List(); + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(allSql); + Grid1.RecordCount = tb.Rows.Count; + var table = this.GetPagedDataTable(Grid1, tb); + Grid1.DataSource = table; + Grid1.DataBind(); + + } + + /// + /// 分页 + /// + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) + { + Grid1.PageIndex = e.NewPageIndex; + BindGrid(); + } + + /// + /// 双击事件 + /// + protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) + { + btnMenuConfirmation_Click(null, null); + } + + /// + /// 分页下拉框 + /// + protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) + { + Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); + BindGrid(); + } + + /// + /// 排序 + /// + protected void Grid1_Sort(object sender, GridSortEventArgs e) + { + BindGrid(); + } + + #endregion + + #region 按钮和事件 + + /// + /// 查询 + /// + protected void btnQuery_Click(object sender, EventArgs e) + { + BindGrid(); + } + + /// + /// 检查确认 + /// + protected void btnConfirmation_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请选择记录!", MessageBoxIcon.Warning); + return; + } + if (Grid1.SelectedRowIndexArray.Length > 1) + { + Alert.ShowInTop("只可选择一条记录!", MessageBoxIcon.Warning); + return; + } + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectWanderAboutConfirm.aspx?SubInspectId={0}&ConfirmType={1}", Grid1.DataKeys[Grid1.SelectedRowIndex][1].ToString(), Grid1.DataKeys[Grid1.SelectedRowIndex][2].ToString(), "编辑 - "))); + } + + /// + /// 右击检查确认 + /// + protected void btnMenuConfirmation_Click(object sender, EventArgs e) + { + btnConfirmation_Click(null, null); + } + + /// + /// 关闭 + /// + protected void Window1_Close(object sender, WindowCloseEventArgs e) + { + BindGrid(); + } + + #endregion + + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutList.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutList.aspx.designer.cs new file mode 100644 index 00000000..ddb935d7 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/InspectWanderAboutList.aspx.designer.cs @@ -0,0 +1,152 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.Feeding +{ + + + public partial class InspectWanderAboutList + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// panelLeftRegion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel panelLeftRegion; + + /// + /// tvControlItem 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Tree tvControlItem; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// btnQuery 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnQuery; + + /// + /// btnConfirmation 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnConfirmation; + + /// + /// ToolbarSeparator1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1; + + /// + /// ToolbarText1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarText ToolbarText1; + + /// + /// ddlPageSize 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlPageSize; + + /// + /// Window1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window Window1; + + /// + /// Menu1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Menu Menu1; + + /// + /// btnMenuConfirmation 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuConfirmation; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/SelectTailTermList.aspx b/SGGL/FineUIPro.Web/TestRun/Feeding/SelectTailTermList.aspx new file mode 100644 index 00000000..21657a76 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/SelectTailTermList.aspx @@ -0,0 +1,44 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SelectTailTermList.aspx.cs" Inherits="FineUIPro.Web.TestRun.Feeding.SelectTailTermList" %> + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/SelectTailTermList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/SelectTailTermList.aspx.cs new file mode 100644 index 00000000..8142b1c5 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/SelectTailTermList.aspx.cs @@ -0,0 +1,89 @@ +using BLL; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.TestRun.Feeding +{ + public partial class SelectTailTermList : PageBase + { + /// + /// 检查项主键 + /// + public string TermItemId + { + get { return (string)ViewState["TermItemId"]; } + set { ViewState["TermItemId"] = value; } + } + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.TermItemId = Request["TermItemId"]; + DataBrid(); + } + } + + + /// + /// 数据绑定 + /// + public void DataBrid() + { + var list = from a in Funs.DB.FeedingRun_InspectTailTerm + join b in Funs.DB.Base_Unit on a.ConstructionUnit equals b.UnitId + where a.TermItemId == this.TermItemId && a.ApproveState == 0 + orderby a.AddTime + select new + { + a.TailTermId, + a.AddTime, + a.TailTermCode, + ConstructionUnit = b.UnitName, + a.AdjustCompleteTime + }; + Grid1.RecordCount = list.Count(); + Grid1.DataSource = list; + Grid1.DataBind(); + } + + /// + /// 排序 + /// + protected void Grid1_Sort(object sender, GridSortEventArgs e) + { + Grid1.SortDirection = e.SortDirection; + Grid1.SortField = e.SortField; + DataBrid(); + } + + #region 确认 + + /// + /// 确认 + /// + protected void btnSave_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); + return; + } + PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(Grid1.SelectedRowID) + ActiveWindow.GetHidePostBackReference()); + } + + #endregion + + /// + /// 表格双击事件 + /// + protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) + { + PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(Grid1.SelectedRowID) + ActiveWindow.GetHidePostBackReference()); + } + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/SelectTailTermList.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/SelectTailTermList.aspx.designer.cs new file mode 100644 index 00000000..18437b4b --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/SelectTailTermList.aspx.designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.Feeding +{ + + + public partial class SelectTailTermList + { + + /// + /// 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; + + /// + /// Toolbar3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar3; + + /// + /// btnSave 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSave; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/SubInspectTerm.aspx b/SGGL/FineUIPro.Web/TestRun/Feeding/SubInspectTerm.aspx new file mode 100644 index 00000000..1c62f005 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/SubInspectTerm.aspx @@ -0,0 +1,158 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SubInspectTerm.aspx.cs" Inherits="FineUIPro.Web.TestRun.Feeding.SubInspectTerm" %> + + + + + + 投料试车管理 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/SubInspectTerm.aspx.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/SubInspectTerm.aspx.cs new file mode 100644 index 00000000..0ea4804e --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/SubInspectTerm.aspx.cs @@ -0,0 +1,633 @@ +using BLL; +using Model; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.TestRun.Feeding +{ + public partial class SubInspectTerm : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.InitTreeMenu();//加载树 + PageInit(); + } + } + + + #region 树绑定 + + /// + /// 加载树 + /// + private void InitTreeMenu() + { + this.tvControlItem.Nodes.Clear(); + TreeNode rootNode = new TreeNode(); + rootNode.Text = "检查表"; + rootNode.NodeID = "0"; + rootNode.Expanded = true; + rootNode.ToolTip = ""; + rootNode.EnableClickEvent = true; + this.tvControlItem.Nodes.Add(rootNode); + var list = Funs.DB.PreRun_SysDevice.Where(a => a.ProjectId == this.CurrUser.LoginProjectId && a.PreRunLevel == 1); + if (list.Count() > 0) + { + foreach (var item in list) + { + TreeNode rootOneNode = new TreeNode(); + rootOneNode.NodeID = item.PreRunId; + rootOneNode.Text = item.PreRunName; + rootOneNode.ToolTip = item.PreRunName; + rootOneNode.CommandName = ""; + rootOneNode.EnableClickEvent = true; + rootOneNode.EnableExpandEvent = false; + rootNode.Nodes.Add(rootOneNode); + rootOneNode.Expanded = true; + } + } + } + + /// + /// 点击TreeView + /// + protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) + { + this.BindGrid(); + } + + #endregion + + #region 数据绑定 + + /// + /// 绑定下拉框 + /// + public void PageInit() + { + //检查人绑定 + var userList = from user in Funs.DB.Sys_User + join projectrole in Funs.DB.Project_ProjectUser on user.UserId equals projectrole.UserId + where projectrole.ProjectId == this.CurrUser.LoginProjectId + select user; + var userids = new List() { Const.sysglyId, Const.hfnbdId, Const.sedinId }; + var addUserList = Funs.DB.Sys_User.Where(x => userids.Contains(x.UserId)); + var users = userList.ToList(); + if (addUserList.Count() > 0) + { + users.AddRange(addUserList); + } + if (users.Count() > 0) + { + ddlDriverCharge.DataTextField = "UserName"; + ddlDriverCharge.DataValueField = "UserId"; + ddlDriverCharge.DataSource = users; + ddlDriverCharge.DataBind(); + + ddlDrivingManager.DataTextField = "UserName"; + ddlDrivingManager.DataValueField = "UserId"; + ddlDrivingManager.DataSource = users; + ddlDrivingManager.DataBind(); + + ddlProjectManager.DataTextField = "UserName"; + ddlProjectManager.DataValueField = "UserId"; + ddlProjectManager.DataSource = users; + ddlProjectManager.DataBind(); + } + } + + /// + /// 绑定数据 + /// + public void BindGrid(List ulist = null) + { + var result = new List(); + if (ulist != null) + { + #region 新增修改检查项 + + var groups = ulist.GroupBy(x => x.GroupName); + int gnum = 1; + foreach (var itemGroup in groups) + { + //添加一级节点 + var firstModel = new FeedingRun_SubInspectTermItemData(); + firstModel.TermItemId = itemGroup.Key; + firstModel.GroupName = itemGroup.Key; + firstModel.Sort = gnum; + firstModel.GroupSort = gnum; + firstModel.Level = 1; + result.Add(firstModel); + gnum++; + + //获取此分组的检查项 + var groupTermItems = ulist.Where(x => x.GroupName == itemGroup.Key); + foreach (var itemTerm in groupTermItems) + { + var model = new FeedingRun_SubInspectTermItemData(); + model.TermItemId = itemTerm.TermItemId; + model.ParentId = itemGroup.Key; + model.ProjectId = this.CurrUser.LoginProjectId; + model.WorkInspectId = itemTerm.WorkInspectId; + model.WorkInspectName = itemTerm.WorkInspectName; + model.InspectedUser = itemTerm.InspectedUser; + model.InspectedUser = itemTerm.InspectedUser; + model.InspectionIllustrate = itemTerm.InspectionIllustrate; + model.GroupName = itemTerm.GroupName; + model.Sort = itemTerm.Sort; + model.GroupSort = itemTerm.GroupSort; + model.Level = 2; + result.Add(model); + } + } + + #endregion + } + else + { + var list = Funs.DB.FeedingRun_SubInspectTermItem.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.InstallationId == this.tvControlItem.SelectedNodeID).OrderBy(x => x.Sort); + if (list.Count() > 0) + { + var groups = list.GroupBy(x => new { x.GroupName }); + int firstnum = 1; + foreach (var itemGroup in groups) + { + //添加一级节点 + var firstModel = new FeedingRun_SubInspectTermItemData(); + firstModel.TermItemId = itemGroup.Key.GroupName; + firstModel.GroupName = itemGroup.Key.GroupName; + firstModel.Sort = firstnum; + firstModel.GroupSort = firstnum; + firstModel.Level = 1; + result.Add(firstModel); + firstnum++; + //获取此分组的检查项 + var groupTermItems = list.Where(x => x.GroupName == itemGroup.Key.GroupName); + foreach (var itemTerm in groupTermItems) + { + var model = new FeedingRun_SubInspectTermItemData(); + model.TermItemId = itemTerm.TermItemId; + model.ParentId = itemGroup.Key.GroupName; + model.ProjectId = itemTerm.ProjectId; + model.WorkInspectId = itemTerm.WorkInspectId; + model.WorkInspectName = itemTerm.WorkInspectName; + model.InspectedUser = itemTerm.InspectedUser; + model.InspectedUser = itemTerm.InspectedUser; + model.GroupName = itemTerm.GroupName; + model.Sort = itemTerm.Sort.Value; + model.GroupSort = itemTerm.Sort.Value; + model.InspectionIllustrate = itemTerm.InspectionIllustrate; + model.Level = 2; + result.Add(model); + } + } + + var itemModel = list.FirstOrDefault(); + ddlDriverCharge.SelectedValue = itemModel.DriverCharge; + ddlDrivingManager.SelectedValue = itemModel.DrivingManager; + ddlProjectManager.SelectedValue = itemModel.ProjectManager; + } + else + { + ddlDriverCharge.SelectedValue = ""; + ddlDrivingManager.SelectedValue = ""; + ddlProjectManager.SelectedValue = ""; + var defaultDatas = Funs.DB.FeedingRun_WorkInspectTemplate.OrderBy(x => x.Sort); + if (defaultDatas.Count() > 0) + { + var groups = defaultDatas.GroupBy(x => x.GroupName); + int firstnum = 1; + foreach (var itemGroup in groups) + { + //添加一级节点 + var firstModel = new FeedingRun_SubInspectTermItemData(); + firstModel.TermItemId = itemGroup.Key; + firstModel.GroupName = itemGroup.Key; + firstModel.Sort = firstnum; + firstModel.GroupSort = firstnum; + firstModel.Level = 1; + result.Add(firstModel); + firstnum++; + //获取此分组的检查项 + var groupTermItems = defaultDatas.Where(x => x.GroupName == itemGroup.Key); + foreach (var itemTerm in groupTermItems) + { + var model = new FeedingRun_SubInspectTermItemData(); + model.TermItemId = Guid.NewGuid().ToString(); + model.ParentId = itemGroup.Key; + model.ProjectId = this.CurrUser.LoginProjectId; + model.WorkInspectId = itemTerm.WorkInspectId; + model.WorkInspectName = itemTerm.WorkInspectName; + model.GroupName = itemTerm.GroupName; + model.Sort = itemTerm.Sort.Value; + model.GroupSort = itemTerm.Sort.Value; + model.Level = 2; + result.Add(model); + } + } + } + } + } + + Grid1.DataSource = result; + Grid1.DataBind(); + //检查人绑定 + var userList = from user in Funs.DB.Sys_User join projectrole in Funs.DB.Project_ProjectUser on user.UserId equals projectrole.UserId where projectrole.ProjectId == this.CurrUser.LoginProjectId select user; + var userids = new List() { Const.sysglyId, Const.hfnbdId, Const.sedinId }; + var addUserList = Funs.DB.Sys_User.Where(x => userids.Contains(x.UserId)); + var data = userList.ToList(); + if (addUserList.Count() > 0) + { + data.AddRange(addUserList); + } + DropDownList ddlInspectedUser = Grid1.FindColumn("InspectedUser").FindControl("ddlInspectedUser") as DropDownList; + ddlInspectedUser.DataTextField = "UserName"; + ddlInspectedUser.DataValueField = "UserId"; + ddlInspectedUser.DataSource = data; + ddlInspectedUser.DataBind(); + } + + /// + /// 行按钮事件 + /// + protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) + { + if (e.CommandName == "Delete") + { + string rowID = e.RowID; + var level = int.Parse(this.Grid1.Rows[e.RowIndex].DataKeys[4].ToString()); + if (level == 1) + { + var groupName = this.Grid1.Rows[e.RowIndex].DataKeys[3].ToString(); + var deletelist = Funs.DB.FeedingRun_SubInspectTermItem.Where(p => p.GroupName == groupName && p.InstallationId == this.tvControlItem.SelectedNodeID); + if (deletelist.Count() > 0) + { + Funs.DB.FeedingRun_SubInspectTermItem.DeleteAllOnSubmit(deletelist); + Funs.DB.SubmitChanges(); + BindGrid(); + ShowNotify("删除成功!"); + } + else + { + + var list = gvList(); + list.RemoveAll(x => x.GroupName == groupName); + Grid1.DataSource = list; + Grid1.DataBind(); + ShowNotify("删除成功!"); + } + } + else + { + var model = Funs.DB.FeedingRun_SubInspectTermItem.FirstOrDefault(p => p.TermItemId == rowID); + if (model != null) + { + if (model.InspectionResults != null) + { + ShowNotify("已存在检查结果,无法删除!", MessageBoxIcon.Warning); + return; + } + Funs.DB.FeedingRun_SubInspectTermItem.DeleteOnSubmit(model); + Funs.DB.SubmitChanges(); + BindGrid(); + ShowNotify("删除成功!"); + } + else + { + var list = gvList(); + list.RemoveAll(x => x.TermItemId == rowID); + Grid1.DataSource = list; + Grid1.DataBind(); + ShowNotify("删除成功!"); + } + } + } + } + + #endregion + + /// + /// 保存 + /// + protected void btnSave_Click(object sender, EventArgs e) + { + try + { + if (string.IsNullOrWhiteSpace(ddlDriverCharge.SelectedValue)) + { + ShowNotify("请选择装置开车负责人!", MessageBoxIcon.Warning); + return; + } + if (string.IsNullOrWhiteSpace(ddlDrivingManager.SelectedValue)) + { + ShowNotify("请选择开车经理!", MessageBoxIcon.Warning); + return; + } + if (string.IsNullOrWhiteSpace(ddlProjectManager.SelectedValue)) + { + ShowNotify("请选择项目经理!", MessageBoxIcon.Warning); + return; + } + List subTrems = new List(); + List subTremItems = new List(); + var subTrem = Funs.DB.FeedingRun_SubInspectTerm.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.InstallationId == this.tvControlItem.SelectedNodeID); + var termItems = Funs.DB.FeedingRun_SubInspectTermItem.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.InstallationId == this.tvControlItem.SelectedNodeID).ToList(); + if (termItems.Count > 0 && termItems.Count(x => x.InspectionResults == null) == 0) + { + ShowNotify("所有检查项已存在检查结果,无法保存!", MessageBoxIcon.Warning); + return; + } + int itemnum = 1; + JArray mergedData = Grid1.GetMergedData(); + foreach (JObject mergedRow in mergedData) + { + string status = mergedRow.Value("status"); + JObject values = mergedRow.Value("values"); + int i = mergedRow.Value("index"); + + var termItemId = this.Grid1.Rows[i].DataKeys[0].ToString(); + var workInspectId = IsNullStr(this.Grid1.Rows[i].DataKeys[1]); + var groupName = IsNullStr(this.Grid1.Rows[i].DataKeys[3]); + var level = IsNullStr(this.Grid1.Rows[i].DataKeys[4]); + if (level == "1") continue; + + //获取系统信息 + var list = new List(); + //检查表 + if (subTrem == null) + { + subTrem = new FeedingRun_SubInspectTerm(); + subTrem.SubInspectId = Guid.NewGuid().ToString(); + subTrem.ProjectId = this.CurrUser.LoginProjectId; + subTrem.DriverCharge = ddlDriverCharge.SelectedValue; + subTrem.DrivingManager = ddlDrivingManager.SelectedValue; + subTrem.ProjectManager = ddlProjectManager.SelectedValue; + subTrem.InstallationId = this.tvControlItem.SelectedNodeID; + subTrem.AddUser = this.CurrUser.UserId; + subTrem.AddTime = DateTime.Now; + subTrems.Add(subTrem); + } + else + { + subTrem.DriverCharge = ddlDriverCharge.SelectedValue; + subTrem.DrivingManager = ddlDrivingManager.SelectedValue; + subTrem.ProjectManager = ddlProjectManager.SelectedValue; + Funs.DB.SubmitChanges(); + } + //检查项表 + var model = Funs.DB.FeedingRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == termItemId); + if (model == null) + { + model = new FeedingRun_SubInspectTermItem(); + model.TermItemId = termItemId; + model.SubInspectId = subTrem.SubInspectId; + model.ProjectId = this.CurrUser.LoginProjectId; + model.WorkInspectId = workInspectId; + model.WorkInspectName = values.Value("WorkInspectName"); + model.InspectedUser = values.Value("InspectedUser"); + model.GroupName = groupName; + model.DriverCharge = ddlDriverCharge.SelectedValue; + model.DrivingManager = ddlDrivingManager.SelectedValue; + model.ProjectManager = ddlProjectManager.SelectedValue; + model.InstallationId = this.tvControlItem.SelectedNodeID; + model.AddUser = this.CurrUser.UserId; + model.AddTime = DateTime.Now; + model.Sort = itemnum; + subTremItems.Add(model); + itemnum++; + } + else + { + model.GroupName = groupName; + model.InspectedUser = IsNullStr(values.Value("InspectedUser")); + model.WorkInspectName = values.Value("WorkInspectName"); + Funs.DB.SubmitChanges(); + } + } + if (subTrems != null) Funs.DB.FeedingRun_SubInspectTerm.InsertAllOnSubmit(subTrems); + if (subTremItems.Count > 0) Funs.DB.FeedingRun_SubInspectTermItem.InsertAllOnSubmit(subTremItems); + Funs.DB.SubmitChanges(); + if (Funs.DB.FeedingRun_SubInspectTermItem.Count(x => x.SubInspectId == subTrem.SubInspectId && x.InspectionResults.GetValueOrDefault() != 1) == 0) + { + subTrem.InspectionIsAllPass = 1; + } + else + { + subTrem.InspectionIsAllPass = 0; + } + Funs.DB.SubmitChanges(); + ShowNotify("保存成功!"); + } + catch (Exception ex) + { + ShowNotify(ex.Message, MessageBoxIcon.Error); + } + } + + /// + /// 新增 + /// + protected void btnAdd_Click(object sender, EventArgs e) + { + this.hidRequestNodeID.Text = string.Empty; + PageContext.RegisterStartupScript(Window1.GetSaveStateReference(hidRequestNodeID.ClientID) + Window1.GetShowReference($"SubInspectTermEdit.aspx?TermItemId=&WorkInspectId=&InstallationId=" + this.tvControlItem.SelectedNodeID + "", "新增")); + } + + /// + /// 修改 + /// + protected void btnModify_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请选择记录!", MessageBoxIcon.Warning); + return; + } + if (Grid1.SelectedRowIndexArray.Length > 1) + { + Alert.ShowInTop("只可选择一条记录!", MessageBoxIcon.Warning); + return; + } + var level = int.Parse(this.Grid1.Rows[Grid1.SelectedRowIndex].DataKeys[4].ToString()); + if (level == 1) + { + Alert.ShowInTop("一级节点无法修改!", MessageBoxIcon.Warning); + return; + } + var workInspectId = IsNullStr(this.Grid1.Rows[Grid1.SelectedRowIndex].DataKeys[1]); + var groupName = IsNullStr(this.Grid1.Rows[Grid1.SelectedRowIndex].DataKeys[3]); + var workInspectName = IsNullStr(this.Grid1.Rows[Grid1.SelectedRowIndex].DataKeys[6]); + this.hidRequestNodeID.Text = string.Empty; + PageContext.RegisterStartupScript(Window1.GetSaveStateReference(hidRequestNodeID.ClientID) + Window1.GetShowReference($"SubInspectTermEdit.aspx?TermItemId={Grid1.SelectedRowID}&WorkInspectId={workInspectId}&GroupName={groupName}&WorkInspectName={workInspectName}&InstallationId={this.tvControlItem.SelectedNodeID}", "编辑")); + } + + /// + /// 右击新增 + /// + protected void btnMenuParentAdd_Click(object sender, EventArgs e) + { + btnAdd_Click(sender, e); + } + + /// + /// 右击修改 + /// + protected void btnMenuModify_Click(object sender, EventArgs e) + { + btnModify_Click(sender, e); + } + + /// + /// 获取集合 + /// + private List gvList() + { + List list = new List(); + JArray mergedData = Grid1.GetMergedData(); + foreach (JObject mergedRow in mergedData) + { + string status = mergedRow.Value("status"); + JObject values = mergedRow.Value("values"); + int i = mergedRow.Value("index"); + var termItemId = this.Grid1.Rows[i].DataKeys[0].ToString(); + var workInspectId = IsNullStr(this.Grid1.Rows[i].DataKeys[1]); + var subInspectId = IsNullStr(this.Grid1.Rows[i].DataKeys[2]); + var groupName = IsNullStr(this.Grid1.Rows[i].DataKeys[3]); + var level = IsNullStr(this.Grid1.Rows[i].DataKeys[4]); + var parentId = IsNullStr(this.Grid1.Rows[i].DataKeys[5]); + var groupSort = IsNullStr(this.Grid1.Rows[i].DataKeys[7]); + var inspectionResults = IsNullStr(this.Grid1.Rows[i].DataKeys[8]); + var inspectionIllustrate = IsNullStr(this.Grid1.Rows[i].DataKeys[9]); + + + var model = new FeedingRun_SubInspectTermItemData(); + model.TermItemId = termItemId; + model.SubInspectId = subInspectId; + model.ProjectId = this.CurrUser.LoginProjectId; + model.WorkInspectId = workInspectId; + model.WorkInspectName = values.Value("WorkInspectName"); + model.InstallationId = this.tvControlItem.SelectedNodeID; + model.GroupName = groupName; + model.GroupSort = !string.IsNullOrWhiteSpace(groupSort) ? int.Parse(groupSort) : 0; + model.Level = !string.IsNullOrWhiteSpace(level) ? int.Parse(level) : 0; + model.ParentId = parentId; + model.InspectedUser = !string.IsNullOrWhiteSpace(values.Value("InspectedUser")) ? values.Value("InspectedUser") : string.Empty; + if (!string.IsNullOrWhiteSpace(inspectionResults)) + { + model.InspectionResults = int.Parse(inspectionResults); + } + model.InspectionIllustrate = inspectionIllustrate; + model.AddUser = this.CurrUser.UserId; + model.AddTime = DateTime.Now; + model.Sort = i + 1; + list.Add(model); + } + return list; + } + + /// + /// 检测结果 + /// + /// + public string Results(object value) + { + var result = string.Empty; + + if (value != null) + { + var intVal = int.Parse(value.ToString()); + if (intVal == 1) + { + result = "通过"; + } + else if (intVal == 0) + { + result = "未通过"; + } + } + + return result; + } + + /// + /// 数据绑定实体 + /// + public class FeedingRun_SubInspectTermItemData : FeedingRun_SubInspectTermItem + { + /// + /// 上级主键 + /// + public string ParentId { get; set; } + /// + /// 分组排序 + /// + public int GroupSort { get; set; } + /// + /// 级别 + /// + public int Level { get; set; } + } + + /// + /// 关闭 + /// + protected void Window1_Close(object sender, WindowCloseEventArgs e) + { + if (!string.IsNullOrWhiteSpace(hidRequestNodeID.Text)) + { + var list = gvList(); + string termItemId = hidRequestNodeID.Text.Split('|')[0]; + string workInspectName = hidRequestNodeID.Text.Split('|')[1]; + string groupName = hidRequestNodeID.Text.Split('|')[2]; + string installationId = hidRequestNodeID.Text.Split('|')[3]; + + var model = new FeedingRun_SubInspectTermItemData(); + model.TermItemId = Guid.NewGuid().ToString(); + model.ParentId = groupName; + model.ProjectId = this.CurrUser.LoginProjectId; + model.WorkInspectId = string.Empty; + model.WorkInspectName = workInspectName; + model.GroupName = groupName; + model.InstallationId = installationId; + model.Sort = list.Count + 1; + model.Level = 2; + list.Add(model); + list.RemoveAll(x => x.Level == 1); + list = list.OrderBy(x => x.Sort).ToList(); + BindGrid(list); + } + } + + /// + /// 行加载事件 + /// + protected void Grid1_RowDataBound(object sender, GridRowEventArgs e) + { + var level = int.Parse(this.Grid1.Rows[e.RowIndex].DataKeys[4].ToString()); + RenderField InspectedUser = Grid1.FindColumn("InspectedUser") as RenderField; + if (level == 1) + { + e.CellAttributes[InspectedUser.ColumnIndex]["data-color"] = "color"; + } + } + + /// + /// 字符串处理 + /// + /// + private string IsNullStr(object value) + { + var result = string.Empty; + if (value == null) return result; + return value.ToString(); + } + + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/SubInspectTerm.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/SubInspectTerm.aspx.designer.cs new file mode 100644 index 00000000..23915556 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/SubInspectTerm.aspx.designer.cs @@ -0,0 +1,224 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.Feeding +{ + + + public partial class SubInspectTerm + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// panelLeftRegion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel panelLeftRegion; + + /// + /// tvControlItem 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Tree tvControlItem; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// ToolbarFill 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill; + + /// + /// btnAdd 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnAdd; + + /// + /// btnModify 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnModify; + + /// + /// btnSave 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSave; + + /// + /// hidRequestNodeID 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox hidRequestNodeID; + + /// + /// txtWorkInspectName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtWorkInspectName; + + /// + /// ddlInspectedUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlInspectedUser; + + /// + /// Toolbar2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar2; + + /// + /// ToolbarFill1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill1; + + /// + /// ddlDriverCharge 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlDriverCharge; + + /// + /// ddlDrivingManager 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlDrivingManager; + + /// + /// ddlProjectManager 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlProjectManager; + + /// + /// 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/TestRun/Feeding/SubInspectTermEdit.aspx b/SGGL/FineUIPro.Web/TestRun/Feeding/SubInspectTermEdit.aspx new file mode 100644 index 00000000..2d4c74d8 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/SubInspectTermEdit.aspx @@ -0,0 +1,65 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SubInspectTermEdit.aspx.cs" Inherits="FineUIPro.Web.TestRun.Feeding.SubInspectTermEdit" %> + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/SubInspectTermEdit.aspx.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/SubInspectTermEdit.aspx.cs new file mode 100644 index 00000000..b242ff95 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/SubInspectTermEdit.aspx.cs @@ -0,0 +1,91 @@ +using BLL; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.TestRun.Feeding +{ + public partial class SubInspectTermEdit : PageBase + { + /// + /// 主键 + /// + public string TermItemId + { + get { return (string)ViewState["TermItemId"]; } + set { ViewState["TermItemId"] = value; } + } + + /// + /// 分组主键 + /// + public string GroupName + { + get { return (string)ViewState["GroupName"]; } + set { ViewState["GroupName"] = value; } + } + + /// + /// 检查项名称 + /// + public string WorkInspectName + { + get { return (string)ViewState["WorkInspectName"]; } + set { ViewState["WorkInspectName"] = value; } + } + + /// + /// 装置主键 + /// + public string InstallationId + { + get { return (string)ViewState["InstallationId"]; } + set { ViewState["InstallationId"] = value; } + } + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.TermItemId = Request.Params["TermItemId"]; + this.GroupName = Request.Params["GroupName"]; + this.WorkInspectName = Request.Params["WorkInspectName"]; + this.InstallationId = Request.Params["InstallationId"]; + PageInit(); + } + } + + /// + /// 默认绑定 + /// + public void PageInit() + { + if (!string.IsNullOrWhiteSpace(this.TermItemId)) + { + txtWorkInspectName.Text = this.WorkInspectName; + ddlGroup.SelectedValue = this.GroupName; + } + } + + /// + /// 保存 + /// + protected void btnSave_Click(object sender, EventArgs e) + { + try + { + string groupName = this.ddlGroup.SelectedValue; + var requestStr = this.TermItemId + "|" + this.txtWorkInspectName.Text + "|" + groupName + "|" + this.InstallationId; + PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(requestStr) + ActiveWindow.GetHidePostBackReference()); + } + catch (Exception ex) + { + ShowNotify(ex.Message, MessageBoxIcon.Error); + } + } + + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/SubInspectTermEdit.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/SubInspectTermEdit.aspx.designer.cs new file mode 100644 index 00000000..584294fe --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/SubInspectTermEdit.aspx.designer.cs @@ -0,0 +1,125 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.Feeding +{ + + + public partial class SubInspectTermEdit + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// SimpleForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form SimpleForm1; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// ToolbarFill1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill1; + + /// + /// btnSave 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSave; + + /// + /// hdAttachUrl 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.HiddenField hdAttachUrl; + + /// + /// hdId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.HiddenField hdId; + + /// + /// ContentPanel2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ContentPanel ContentPanel2; + + /// + /// Form2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form Form2; + + /// + /// txtWorkInspectName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextArea txtWorkInspectName; + + /// + /// ddlGroup 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlGroup; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/SubWorkInspect.aspx b/SGGL/FineUIPro.Web/TestRun/Feeding/SubWorkInspect.aspx new file mode 100644 index 00000000..23090807 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/SubWorkInspect.aspx @@ -0,0 +1,121 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SubWorkInspect.aspx.cs" Inherits="FineUIPro.Web.TestRun.Feeding.SubWorkInspect" %> + + + + + + 投料试车工作包检查 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/SubWorkInspect.aspx.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/SubWorkInspect.aspx.cs new file mode 100644 index 00000000..84f4156b --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/SubWorkInspect.aspx.cs @@ -0,0 +1,439 @@ +using BLL; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.TestRun.Feeding +{ + public partial class SubWorkInspect : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.InitTreeMenu();//加载树 + } + } + + #region 树绑定 + + /// + /// 加载树 + /// + private void InitTreeMenu() + { + this.tvControlItem.Nodes.Clear(); + TreeNode rootNode = new TreeNode(); + rootNode.Text = "检查表"; + rootNode.NodeID = "0"; + rootNode.Expanded = true; + rootNode.ToolTip = ""; + rootNode.EnableClickEvent = true; + this.tvControlItem.Nodes.Add(rootNode); + var userSubInspects = Funs.DB.FeedingRun_SubInspectTermItem.Where(x => x.InspectedUser == this.CurrUser.UserId).ToList(); + if (userSubInspects.Count == 0) return; + var subInstallationIds = userSubInspects.ConvertAll(x => x.InstallationId); + var list = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 1 && subInstallationIds.Contains(x.PreRunId)); + if (list.Count() > 0) + { + foreach (var item in list) + { + TreeNode rootOneNode = new TreeNode(); + rootOneNode.NodeID = item.PreRunId; + rootOneNode.Text = item.PreRunName; + rootOneNode.ToolTip = item.PreRunName; + rootOneNode.CommandName = ""; + rootOneNode.EnableClickEvent = true; + rootOneNode.EnableExpandEvent = false; + rootNode.Nodes.Add(rootOneNode); + rootOneNode.Expanded = true; + } + } + } + + /// + /// 点击TreeView + /// + protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) + { + this.BindGrid(); + } + + #endregion + + #region 数据绑定 + + /// + /// 绑定数据 + /// + public void BindGrid(bool istail = false) + { + + var subInstallationId = this.tvControlItem.SelectedNodeID; + //获取子系统 + var data = from termitem in Funs.DB.FeedingRun_SubInspectTermItem + join b in Funs.DB.FeedingRun_InspectTailTerm on termitem.TermItemId equals b.TermItemId into t + from tail in t.DefaultIfEmpty() + where termitem.InstallationId == subInstallationId + && termitem.InspectedUser == this.CurrUser.UserId + group termitem by new { termitem.TermItemId, termitem.SubInspectId, termitem.ProjectId, termitem.WorkInspectId, termitem.WorkInspectName, termitem.InstallationId, termitem.InspectedUser, termitem.InspectionResults, termitem.InspectionIllustrate, termitem.DriverCharge, termitem.DrivingManager, termitem.ProjectManager, termitem.DriverChargeIsPass, termitem.DrivingManagerIsPass, termitem.ProjectManagerIsPass, termitem.DriverChargeRemark, termitem.DrivingManagerRemark, termitem.ProjectManagerRemark, termitem.Remark, termitem.AddUser, termitem.AddTime, termitem.Sort, IsTailTerm = tail.TailTermId == null ? 0 : 1 } into gt + orderby gt.Key.Sort + select new TermItemBridDto() + { + TermItemId = gt.Key.TermItemId, + SubInspectId = gt.Key.SubInspectId, + ProjectId = gt.Key.ProjectId, + WorkInspectId = gt.Key.WorkInspectId, + WorkInspectName = gt.Key.WorkInspectName, + InstallationId = gt.Key.InstallationId, + InspectedUser = gt.Key.InspectedUser, + InspectionResults = gt.Key.InspectionResults, + InspectionIllustrate = gt.Key.InspectionIllustrate, + DriverCharge = gt.Key.DriverCharge, + DrivingManager = gt.Key.DrivingManager, + ProjectManager = gt.Key.ProjectManager, + DriverChargeIsPass = gt.Key.DriverChargeIsPass, + DrivingManagerIsPass = gt.Key.DrivingManagerIsPass, + ProjectManagerIsPass = gt.Key.ProjectManagerIsPass, + DriverChargeRemark = gt.Key.DriverChargeRemark, + DrivingManagerRemark = gt.Key.DrivingManagerRemark, + ProjectManagerRemark = gt.Key.ProjectManagerRemark, + Remark = gt.Key.Remark, + AddUser = gt.Key.AddUser, + AddTime = gt.Key.AddTime, + Sort = gt.Key.Sort, + IsTailTerm = gt.Key.IsTailTerm + }; + var list = data.ToList(); + if (istail) + { + JArray mergedData = Grid1.GetMergedData(); + list.ForEach(a => + { + var itemRow = mergedData.FirstOrDefault(x => x.Value("id") == a.TermItemId); + JObject values = itemRow.Value("values"); + var inspectionResults = !string.IsNullOrWhiteSpace(values.Value("InspectionResults")) ? values.Value("InspectionResults") : string.Empty; + if (!string.IsNullOrWhiteSpace(inspectionResults)) + { + a.InspectionResults = int.Parse(inspectionResults); + } + }); + } + Grid1.DataSource = list; + Grid1.DataBind(); + } + + /// + /// 排序 + /// + protected void Grid1_Sort(object sender, GridSortEventArgs e) + { + Grid1.SortDirection = e.SortDirection; + Grid1.SortField = e.SortField; + BindGrid(); + } + + #endregion + + #region 保存 + + /// + /// 保存 + /// + protected void btnSave_Click(object sender, EventArgs e) + { + try + { + var subInspectId = this.Grid1.Rows[0].DataKeys[2].ToString(); + if (Funs.DB.FeedingRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && (x.DriverChargeIsPass != null || x.DrivingManagerIsPass != null || x.ProjectManagerIsPass != null)) > 0) + { + ShowNotify("已进入检查表流转,无法修改检查结果!", MessageBoxIcon.Warning); + return; + } + JArray mergedData = Grid1.GetMergedData(); + foreach (JObject mergedRow in mergedData) + { + string status = mergedRow.Value("status"); + JObject values = mergedRow.Value("values"); + int i = mergedRow.Value("index"); + var termItemId = this.Grid1.Rows[i].DataKeys[0].ToString(); + if (values.Value("InspectionResults") == "0") + { + if (Funs.DB.FeedingRun_InspectTailTerm.Count(x => x.TermItemId == termItemId) == 0) + { + ShowNotify("未通过的检查项请填写尾项!", MessageBoxIcon.Warning); + return; + } + } + } + foreach (JObject mergedRow in mergedData) + { + string status = mergedRow.Value("status"); + JObject values = mergedRow.Value("values"); + int i = mergedRow.Value("index"); + var termItemId = this.Grid1.Rows[i].DataKeys[0].ToString(); + //获取子系统信息 + var model = Funs.DB.FeedingRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == termItemId); + if (model != null) + { + model.InspectionIllustrate = !string.IsNullOrWhiteSpace(values.Value("InspectionIllustrate")) ? values.Value("InspectionIllustrate") : string.Empty; + if (!string.IsNullOrWhiteSpace(values.Value("InspectionResults"))) + { + model.InspectionResults = int.Parse(values.Value("InspectionResults")); + } + Funs.DB.SubmitChanges(); + } + } + var subModel = Funs.DB.FeedingRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == subInspectId); + if (subModel != null) + { + if (Funs.DB.FeedingRun_SubInspectTermItem.Count(x => x.SubInspectId == subInspectId && x.InspectionResults.GetValueOrDefault() != 1) == 0) + { + subModel.InspectionIsAllPass = 1; + } + else + { + subModel.InspectionIsAllPass = 0; + } + } + Funs.DB.SubmitChanges(); + BindGrid(); + ShowNotify("保存成功!"); + } + catch (Exception ex) + { + ShowNotify(ex.Message, MessageBoxIcon.Error); + } + } + + #endregion + + /// + /// 尾项数据绑定实体 + /// + public class TermItemBridDto + { + /// + /// 主键 + /// + public string TermItemId { get; set; } + /// + /// 检查项主键 + /// + public string SubItemId { get; set; } + /// + /// 检查表主键 + /// + public string SubInspectId { get; set; } + /// + /// 工作包主键 + /// + public string WorkPackId { get; set; } + /// + /// 项目主键 + /// + public string ProjectId { get; set; } + /// + /// 工作包模板项主键 + /// + public string WorkInspectId { get; set; } + /// + /// 检查事项名称 + /// + public string WorkInspectName { get; set; } + /// + /// 装置主键 + /// + public string InstallationId { get; set; } + /// + /// 工序主键 + /// + public string ProcessesId { get; set; } + /// + /// 系统主键 + /// + public string SystemId { get; set; } + /// + /// 子系统主键 + /// + public string SubSystemId { get; set; } + /// + /// 检查人主键 + /// + public string InspectedUser { get; set; } + /// + /// 检查结果0:未通过 1:通过 + /// + public int? InspectionResults { get; set; } + /// + /// 检查说明 + /// + public string InspectionIllustrate { get; set; } + /// + /// 装置开车负责人 + /// + public string DriverCharge { get; set; } + /// + /// 开车经理 + /// + public string DrivingManager { get; set; } + /// + /// 项目经理 + /// + public string ProjectManager { get; set; } + /// + /// 装置开车负责人是否通过0/null:未通过 1:通过 + /// + public int? DriverChargeIsPass { get; set; } + /// + /// 开车经理是否通过0/null:未通过 1:通过 + /// + public int? DrivingManagerIsPass { get; set; } + /// + /// 项目经理是否通过0/null:未通过 1:通过 + /// + public int? ProjectManagerIsPass { get; set; } + /// + /// 装置开车负责人备注 + /// + public string DriverChargeRemark { get; set; } + /// + /// 开车经理备注 + /// + public string DrivingManagerRemark { get; set; } + /// + /// 项目经理备注 + /// + public string ProjectManagerRemark { get; set; } + /// + /// 备注 + /// + public string Remark { get; set; } + /// + /// 添加人 + /// + public string AddUser { get; set; } + /// + /// 添加日期 + /// + public DateTime? AddTime { get; set; } + /// + /// 排序 + /// + public int? Sort { get; set; } + /// + /// 是否存在尾项0:不存在1:存在 + /// + public int IsTailTerm { get; set; } + } + + /// + /// 行内按钮事件 + /// + protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) + { + //尾项申请 + if (e.CommandName == "TailTerm") + { + var termItemId = Grid1.DataKeys[e.RowIndex][0].ToString(); + var inspectionResults = Grid1.DataKeys[e.RowIndex][1] != null ? int.Parse(Grid1.DataKeys[e.RowIndex][1].ToString()) : -1; + if (inspectionResults == 0) + { + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectTailTermEdit.aspx?TailTermId={0}&TermItemId={1}", "", termItemId, "新增 - "))); + } + else + { + JArray mergedData = Grid1.GetMergedData(); + var itemRow = mergedData[e.RowIndex].Value("values"); + if (itemRow.Value("InspectionResults") == "0") + { + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectTailTermEdit.aspx?TailTermId={0}&TermItemId={1}", "", termItemId, "新增 - "))); + } + else + { + ShowNotify("仅未通过检查项才可填写!", MessageBoxIcon.Warning); + } + } + } + //尾项修改 + if (e.CommandName == "TailTermUpdate") + { + var termItemId = Grid1.DataKeys[e.RowIndex][0].ToString(); + var inspectionResults = Grid1.DataKeys[e.RowIndex][1] != null ? int.Parse(Grid1.DataKeys[e.RowIndex][1].ToString()) : -1; + if (inspectionResults == 0) + { + var tails = Funs.DB.FeedingRun_InspectTailTerm.Where(x => x.TermItemId == termItemId).ToList(); + if (tails.Count > 0) + { + if (tails.Count(x => x.ApproveState == 0) == 0) + { + ShowNotify("申请的尾项非“待提交处理”状态,无法修改!", MessageBoxIcon.Warning); + return; + } + if (tails.Count(x => x.ApproveState == 0) > 1) + { + string window = $"SelectTailTermList.aspx?TermItemId={termItemId}"; + PageContext.RegisterStartupScript(Window2.GetSaveStateReference(this.hidTailTermId.ClientID) + Window2.GetShowReference(window)); + } + else + { + var tailModel = tails.FirstOrDefault(); + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectTailTermEdit.aspx?TailTermId={0}&TermItemId={1}", tailModel.TailTermId, tailModel.TermItemId, "编辑 - "))); + } + } + else + { + ShowNotify("请填写尾项申请!", MessageBoxIcon.Warning); + } + } + else + { + ShowNotify("请填写尾项申请!", MessageBoxIcon.Warning); + } + } + } + + /// + /// 窗口关闭 + /// + protected void Window1_Close(object sender, WindowCloseEventArgs e) + { + BindGrid(true); + } + + /// + /// 行绑定 + /// + protected void Grid1_RowDataBound(object sender, GridRowEventArgs e) + { + var isTailTerm = Grid1.DataKeys[e.RowIndex][3].ToString(); + LinkButtonField TailTermUpdate = Grid1.FindColumn("TailTermUpdate") as LinkButtonField; + if (isTailTerm == "0") + { + e.CellCssClasses[TailTermUpdate.ColumnIndex] = "hidethis"; + } + } + + /// + /// 尾项选择关闭 + /// + /// + /// + protected void Window2_Close(object sender, WindowCloseEventArgs e) + { + if (!string.IsNullOrWhiteSpace(hidTailTermId.Text)) + { + var model = Funs.DB.FeedingRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == hidTailTermId.Text); + if (model != null) + { + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("InspectTailTermEdit.aspx?TailTermId={0}&TermItemId={1}", hidTailTermId.Text, model.TermItemId, "编辑 - "))); + } + } + } + + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/SubWorkInspect.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/SubWorkInspect.aspx.designer.cs new file mode 100644 index 00000000..64304440 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/SubWorkInspect.aspx.designer.cs @@ -0,0 +1,143 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.Feeding +{ + + + public partial class SubWorkInspect + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// panelLeftRegion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel panelLeftRegion; + + /// + /// tvControlItem 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Tree tvControlItem; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// ToolbarFill 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill; + + /// + /// btnSave 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSave; + + /// + /// hidTailTermId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox hidTailTermId; + + /// + /// txtInspectionIllustrate 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextArea txtInspectionIllustrate; + + /// + /// ddlInspectionResults 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlInspectionResults; + + /// + /// Window1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window Window1; + + /// + /// Window2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window Window2; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermApprove.aspx b/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermApprove.aspx new file mode 100644 index 00000000..42ff246d --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermApprove.aspx @@ -0,0 +1,153 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TailTermApprove.aspx.cs" Inherits="FineUIPro.Web.TestRun.Feeding.TailTermApprove" %> + + + + + + 质量巡检 + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermApprove.aspx.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermApprove.aspx.cs new file mode 100644 index 00000000..71e09b12 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermApprove.aspx.cs @@ -0,0 +1,233 @@ +using BLL; +using Model; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.TestRun.Feeding +{ + public partial class TailTermApprove : PageBase + { + /// + /// 主键 + /// + public string TailTermId + { + get { return (string)ViewState["TailTermId"]; } + set { ViewState["TailTermId"] = value; } + } + + /// + /// 问题图片是否可编辑 + /// + public int QuestionEditImg + { + get { return (int)ViewState["QuestionEditImg"]; } + set { ViewState["QuestionEditImg"] = value; } + } + + /// + /// 整改图片是否可编辑 + /// + public int RectifyEditImg + { + get { return (int)ViewState["RectifyEditImg"]; } + set { ViewState["RectifyEditImg"] = value; } + } + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.TailTermId = Request["TailTermId"]; + this.QuestionEditImg = -1; + this.RectifyEditImg = -1; + //数据绑定 + PageInit(); + //处理意见绑定 + gvHandleBrid(); + } + } + + + /// + /// 绑定数据 + /// + public void PageInit() + { + var data = from tail in Funs.DB.FeedingRun_InspectTailTerm + join unit in Funs.DB.Base_Unit on tail.ConstructionUnit equals unit.UnitId + join inspuser in Funs.DB.Sys_User on tail.InspectUser equals inspuser.UserId + join approuser in Funs.DB.Sys_User on tail.ApproveUser equals approuser.UserId + join termitem in Funs.DB.FeedingRun_SubInspectTermItem on tail.TermItemId equals termitem.TermItemId + where tail.TailTermId == this.TailTermId + select new + { + tail.ProjectName, + tail.TailTermCode, + unit.UnitName, + TermItemName = termitem.WorkInspectName, + tail.SubInspectId, + tail.QuestionDesc, + tail.RectifyOpinion, + tail.RectifyTime, + tail.InspectUser, + InspectUserName = inspuser.UserName, + tail.ApproveUser, + ApproveUserName = approuser.UserName, + tail.AdjustCompleteTime + }; + if (data.Count() > 0) + { + var model = data.FirstOrDefault(); + //项目名称 + lblProjectName.Text = model.ProjectName; + //巡检编号 + lblTailTermCode.Text = model.TailTermCode; + //施工单位 + lblConstructionUnit.Text = model.UnitName; + //检查项 + lblTermItemName.Text = model.TermItemName; + //问题描述 + lblQuestionDesc.Text = model.QuestionDesc; + //整改意见 + lblRectifyOpinion.Text = model.RectifyOpinion; + //要求整改完成时间 + lblAdjustCompleteTime.Text = model.AdjustCompleteTime != null ? model.AdjustCompleteTime.Value.ToString("yyyy-MM-dd hh:mm:ss") : string.Empty; + //检查人 + lblInspectUser.Text = model.InspectUserName; + //审核人 + lblApproveUser.Text = model.ApproveUserName; + hidApproveUserId.Text = model.ApproveUser; + //审核时间 + lblApproveTime.Text = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); + } + } + + /// + /// 处理意见绑定 + /// + public void gvHandleBrid() + { + string strSql = @"select a.InspectTermId,a.ApproveOpinion,a.ApproveTime,a.ApproveType,a.ApproveState,(case a.ApproveState when 0 then '处理退回' when 1 then '处理完成' else '' end) as ApproveStateName,b.ConstructionUnit,d.UnitName as ConstructionUnitName,a.AddUser,a.AddTime from FeedingRun_InspectTermApproveRecords as a inner join FeedingRun_InspectTailTerm as b on a.TailTermId=b.TailTermId inner join FeedingRun_SubInspectTermItem as c on c.TermItemId=a.TermItemId inner join Base_Unit as d on d.UnitId=b.ConstructionUnit where 1=1 and a.ApproveType=0 and a.ProjectId=@ProjectId and a.TailTermId=@TailTermId "; + List listStr = new List(); + listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); + listStr.Add(new SqlParameter("@TailTermId", this.TailTermId)); + strSql += " order by a.AddTime asc"; + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); + gvHandle.DataSource = tb; + gvHandle.DataBind(); + } + + /// + /// 问题图片 + /// + protected void imgBtnQuestionFile_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", QuestionEditImg, this.TailTermId + "q", Const.InspectTailTerm))); + } + + /// + /// 整改图片 + /// + protected void imgBtnRectifyFile_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", RectifyEditImg, this.TailTermId + "h", Const.InspectTailTerm))); + } + + /// + /// 退回 + /// + protected void btnReturn_Click(object sender, EventArgs e) + { + var tailTerm = Funs.DB.FeedingRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId); + if (tailTerm != null) + { + tailTerm.ApproveState = 3; + var model = new FeedingRun_InspectTermApproveRecords(); + model.InspectTermId = Guid.NewGuid().ToString(); + model.ProjectId = this.CurrUser.LoginProjectId; + model.TermItemId = tailTerm.TermItemId; + model.TailTermId = this.TailTermId; + model.ApproveOpinion = txtApproveOpinion.Text; + model.ApproveTime = DateTime.Parse(lblApproveTime.Text); + model.ApproveUser = hidApproveUserId.Text; + //0:处理记录1:审核记录 + model.ApproveType = 1; + //0:退回1:通过 + model.ApproveState = 0; + model.AddUser = this.CurrUser.UserId; + model.AddTime = DateTime.Now; + Funs.DB.FeedingRun_InspectTermApproveRecords.InsertOnSubmit(model); + Funs.DB.SubmitChanges(); + ShowNotify("退回成功!", MessageBoxIcon.Success); + PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + } + } + + /// + /// 通过 + /// + protected void btnPass_Click(object sender, EventArgs e) + { + var tailTerm = Funs.DB.FeedingRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId); + if (tailTerm != null) + { + //获取审核项 + if (Funs.DB.FeedingRun_InspectTailTerm.Count(x => x.TermItemId == tailTerm.TermItemId && x.ApproveState != 5 && x.TailTermId != this.TailTermId) == 0) + { + var termItemModel = Funs.DB.FeedingRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == tailTerm.TermItemId); + if (termItemModel != null) + { + termItemModel.InspectionResults = 1; + var subModel = Funs.DB.FeedingRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == termItemModel.SubInspectId); + if (subModel != null) + { + if (Funs.DB.FeedingRun_SubInspectTermItem.Count(x => x.SubInspectId == termItemModel.SubInspectId && x.InspectionResults.GetValueOrDefault() != 1 && x.TermItemId != termItemModel.TermItemId) == 0) + { + subModel.InspectionIsAllPass = 1; + } + else + { + subModel.InspectionIsAllPass = 0; + } + } + } + } + tailTerm.ApproveState = 5; + var model = new FeedingRun_InspectTermApproveRecords(); + model.InspectTermId = Guid.NewGuid().ToString(); + model.ProjectId = this.CurrUser.LoginProjectId; + model.TermItemId = tailTerm.TermItemId; + model.TailTermId = this.TailTermId; + model.ApproveOpinion = txtApproveOpinion.Text; + model.ApproveTime = DateTime.Parse(lblApproveTime.Text); + model.ApproveUser = hidApproveUserId.Text; + //0:处理记录1:审核记录 + model.ApproveType = 1; + //0:退回1:通过 + model.ApproveState = 1; + model.AddUser = this.CurrUser.UserId; + model.AddTime = DateTime.Now; + Funs.DB.FeedingRun_InspectTermApproveRecords.InsertOnSubmit(model); + Funs.DB.SubmitChanges(); + ShowNotify("审核成功!", MessageBoxIcon.Success); + PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + } + } + + /// + /// 关闭 + /// + protected void WindowAtt_Close(object sender, WindowCloseEventArgs e) + { + + } + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermApprove.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermApprove.aspx.designer.cs new file mode 100644 index 00000000..39f4186e --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermApprove.aspx.designer.cs @@ -0,0 +1,278 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.Feeding +{ + + + public partial class TailTermApprove + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// SimpleForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form SimpleForm1; + + /// + /// ContentPanel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ContentPanel ContentPanel1; + + /// + /// Form2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form Form2; + + /// + /// lblProjectName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblProjectName; + + /// + /// lblTailTermCode 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblTailTermCode; + + /// + /// lblConstructionUnit 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblConstructionUnit; + + /// + /// lblTermItemName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblTermItemName; + + /// + /// lblQuestionDesc 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblQuestionDesc; + + /// + /// lblRectifyOpinion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblRectifyOpinion; + + /// + /// lblInspectUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblInspectUser; + + /// + /// lblAdjustCompleteTime 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblAdjustCompleteTime; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// imgBtnQuestionFile 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button imgBtnQuestionFile; + + /// + /// Panel2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel2; + + /// + /// lblAttach 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblAttach; + + /// + /// imgBtnRectifyFile 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button imgBtnRectifyFile; + + /// + /// plApprove2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.FormRow plApprove2; + + /// + /// gvHandle 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid gvHandle; + + /// + /// lblApproveUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblApproveUser; + + /// + /// hidApproveUserId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.HiddenField hidApproveUserId; + + /// + /// lblApproveTime 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblApproveTime; + + /// + /// txtApproveOpinion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextArea txtApproveOpinion; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// ToolbarFill1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill1; + + /// + /// btnReturn 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnReturn; + + /// + /// btnPass 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnPass; + + /// + /// WindowAtt 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window WindowAtt; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermApproveList.aspx b/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermApproveList.aspx new file mode 100644 index 00000000..5ec8a172 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermApproveList.aspx @@ -0,0 +1,146 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TailTermApproveList.aspx.cs" Inherits="FineUIPro.Web.TestRun.Feeding.TailTermApproveList" %> + + + + + + + + + 质量巡检审核 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermApproveList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermApproveList.aspx.cs new file mode 100644 index 00000000..f6f6d357 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermApproveList.aspx.cs @@ -0,0 +1,202 @@ +using BLL; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.TestRun.Feeding +{ + public partial class TailTermApproveList : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + //绑定数据 + InitTreeMenu(); + } + } + + + #region 树绑定 + + /// + /// 加载树 + /// + private void InitTreeMenu() + { + this.tvControlItem.Nodes.Clear(); + TreeNode rootNode = new TreeNode(); + rootNode.Text = "检查表"; + rootNode.NodeID = "0"; + rootNode.Expanded = true; + rootNode.ToolTip = ""; + rootNode.EnableClickEvent = true; + this.tvControlItem.Nodes.Add(rootNode); + var termIds = new List(); + var tailTerms = Funs.DB.FeedingRun_InspectTailTerm.Where(x => x.ApproveUser == this.CurrUser.UserId && x.ProjectId == this.CurrUser.LoginProjectId).ToList(); + if (tailTerms.Count > 0) + { + termIds = tailTerms.ConvertAll(x => x.TermItemId); + } + var userSubInspects = Funs.DB.FeedingRun_SubInspectTermItem.Where(x => termIds.Contains(x.TermItemId) && x.ProjectId == this.CurrUser.LoginProjectId).ToList(); + if (userSubInspects.Count() == 0) return; + var subInstallationIds = userSubInspects.ConvertAll(x => x.InstallationId); + var list = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 1 && subInstallationIds.Contains(x.PreRunId)); + if (list.Count() > 0) + { + var ids = list.Select(x => x.ProcessesId).ToList(); + ids.AddRange(list.Select(x => x.PreRunId).ToList()); + ids = ids.Distinct().ToList(); + var syslist = Funs.DB.PreRun_SysDevice.Where(x => ids.Contains(x.PreRunId)).ToList(); + if (syslist.Count > 0) + { + foreach (var item in list) + { + TreeNode rootOneNode = new TreeNode(); + rootOneNode.NodeID = item.PreRunId; + rootOneNode.Text = item.PreRunName; + rootOneNode.ToolTip = item.PreRunName; + rootOneNode.CommandName = ""; + rootOneNode.EnableClickEvent = true; + rootOneNode.EnableExpandEvent = false; + rootNode.Nodes.Add(rootOneNode); + rootOneNode.Expanded = true; + } + } + } + } + + /// + /// 点击TreeView + /// + protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) + { + this.BindGrid(); + } + + #endregion + + #region 绑定数据 + + /// + /// 数据绑定 + /// + public void BindGrid() + { + string strSql = @"select a.TailTermId,a.ProjectId,d.ProjectCode,d.ProjectName,a.TailTermCode,a.ConstructionUnit,b.UnitName,a.SubInspectId,a.TermItemId,c.WorkInspectName,a.QuestionDesc,a.RectifyTime,a.RectifyOpinion,a.InspectUser,e.UserName as InspectUserName,a.ApproveUser,f.UserName as ApproveUserName,a.HandleUser,g.UserName as HandleUserName,a.ApproveState,(case a.ApproveState when 0 then '待提交处理' when 1 then '待处理' when 2 then '处理退回' when 3 then '审核退回' when 4 then '待审核' when 5 then '审核通过' else '' end) as ApproveStateName,a.AddTime,a.AdjustCompleteTime,DATEDIFF(DAY, GETDATE(),a.AdjustCompleteTime) as AdjustDiffDay from FeedingRun_InspectTailTerm as a inner join Base_Unit as b on a.ConstructionUnit=b.UnitId inner join FeedingRun_SubInspectTermItem as c on c.TermItemId=a.TermItemId inner join Base_Project as d on d.ProjectId=a.ProjectId inner join Sys_User as e on e.UserId=a.InspectUser inner join Sys_User as f on f.UserId=a.ApproveUser inner join Sys_User as g on g.UserId=a.HandleUser where 1=1 and a.ProjectId=@projectid and a.ApproveUser=@ApproveUser and a.ApproveState>=3"; + List listStr = new List(); + listStr.Add(new SqlParameter("@projectid", this.CurrUser.LoginProjectId)); + listStr.Add(new SqlParameter("@ApproveUser", this.CurrUser.UserId)); + if (!string.IsNullOrWhiteSpace(this.tvControlItem.SelectedNodeID)) + { + strSql += " and c.InstallationId=@InstallationId"; + listStr.Add(new SqlParameter("@InstallationId", this.tvControlItem.SelectedNodeID)); + } + //审核状态 + if (!string.IsNullOrWhiteSpace(ddlApproveState.SelectedValue)) + { + strSql += " and a.ApproveState=@ApproveState"; + listStr.Add(new SqlParameter("@ApproveState", ddlApproveState.SelectedValue)); + } + strSql += " order by a.AddTime asc"; + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); + Grid1.RecordCount = tb.Rows.Count; + var table = this.GetPagedDataTable(Grid1, tb); + Grid1.DataSource = table; + Grid1.DataBind(); + } + + /// + /// 分页 + /// + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) + { + Grid1.PageIndex = e.NewPageIndex; + BindGrid(); + } + + /// + /// 双击事件 + /// + protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) + { + btnMenuApprove_Click(null, null); + } + + /// + /// 分页下拉框 + /// + protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) + { + Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); + BindGrid(); + } + + /// + /// 排序 + /// + protected void Grid1_Sort(object sender, GridSortEventArgs e) + { + BindGrid(); + } + + #endregion + + #region 按钮和操作 + + /// + /// 关闭弹框 + /// + protected void Window1_Close(object sender, WindowCloseEventArgs e) + { + BindGrid(); + } + + /// + /// 审核 + /// + protected void btnReview_Click(object sender, EventArgs e) + { + btnMenuApprove_Click(null, null); + } + + /// + /// 审核 + /// + protected void btnMenuApprove_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); + return; + } + var model = Funs.DB.FeedingRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID); + if (model != null) + { + if (model.ApproveState != 4) + { + Alert.ShowInTop("只可审核“待审核”的记录!", MessageBoxIcon.Warning); + return; + } + } + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TailTermApprove.aspx?TailTermId={0}", Grid1.SelectedRowID, "审核 - "))); + } + + /// + /// 搜索 + /// + protected void btnQuery_Click(object sender, EventArgs e) + { + BindGrid(); + } + + #endregion + + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermApproveList.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermApproveList.aspx.designer.cs new file mode 100644 index 00000000..36d72642 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermApproveList.aspx.designer.cs @@ -0,0 +1,161 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.Feeding +{ + + + public partial class TailTermApproveList + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// panelLeftRegion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel panelLeftRegion; + + /// + /// tvControlItem 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Tree tvControlItem; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// ddlApproveState 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlApproveState; + + /// + /// btnQuery 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnQuery; + + /// + /// btnReview 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnReview; + + /// + /// ToolbarSeparator1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1; + + /// + /// ToolbarText1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarText ToolbarText1; + + /// + /// ddlPageSize 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlPageSize; + + /// + /// Window1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window Window1; + + /// + /// Menu1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Menu Menu1; + + /// + /// btnMenuApprove 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuApprove; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermHandle.aspx b/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermHandle.aspx new file mode 100644 index 00000000..fdc95b00 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermHandle.aspx @@ -0,0 +1,131 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TailTermHandle.aspx.cs" Inherits="FineUIPro.Web.TestRun.Feeding.TailTermHandle" %> + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermHandle.aspx.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermHandle.aspx.cs new file mode 100644 index 00000000..837d88bb --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermHandle.aspx.cs @@ -0,0 +1,192 @@ +using BLL; +using Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.TestRun.Feeding +{ + public partial class TailTermHandle : PageBase + { + /// + /// 主键 + /// + public string TailTermId + { + get { return (string)ViewState["TailTermId"]; } + set { ViewState["TailTermId"] = value; } + } + + /// + /// 问题图片是否可编辑 + /// + public int QuestionEditImg + { + get { return (int)ViewState["QuestionEditImg"]; } + set { ViewState["QuestionEditImg"] = value; } + } + + /// + /// 整改图片是否可编辑 + /// + public int RectifyEditImg + { + get { return (int)ViewState["RectifyEditImg"]; } + set { ViewState["RectifyEditImg"] = value; } + } + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.TailTermId = Request["TailTermId"]; + this.QuestionEditImg = -1; + this.RectifyEditImg = 0; + //数据绑定 + PageInit(); + } + } + + /// + /// 绑定数据 + /// + public void PageInit() + { + var data = from tail in Funs.DB.FeedingRun_InspectTailTerm + join unit in Funs.DB.Base_Unit on tail.ConstructionUnit equals unit.UnitId + join inspuser in Funs.DB.Sys_User on tail.InspectUser equals inspuser.UserId + join handleuser in Funs.DB.Sys_User on tail.HandleUser equals handleuser.UserId + join termitem in Funs.DB.FeedingRun_SubInspectTermItem on tail.TermItemId equals termitem.TermItemId + where tail.TailTermId == this.TailTermId + select new + { + tail.ProjectName, + tail.TailTermCode, + unit.UnitName, + TermItemName = termitem.WorkInspectName, + tail.SubInspectId, + tail.QuestionDesc, + tail.RectifyOpinion, + tail.RectifyTime, + tail.InspectUser, + InspectUserName = inspuser.UserName, + tail.HandleUser, + HandleUserName = handleuser.UserName, + tail.AdjustCompleteTime + }; + if (data.Count() > 0) + { + var model = data.FirstOrDefault(); + //项目名称 + lblProjectName.Text = model.ProjectName; + //巡检编号 + lblTailTermCode.Text = model.TailTermCode; + //施工单位 + lblConstructionUnit.Text = model.UnitName; + //检查项 + lblTermItemName.Text = model.TermItemName; + //问题描述 + lblQuestionDesc.Text = model.QuestionDesc; + //整改意见 + lblRectifyOpinion.Text = model.RectifyOpinion; + //要求整改完成时间 + lblAdjustCompleteTime.Text = model.AdjustCompleteTime != null ? model.AdjustCompleteTime.Value.ToString("yyyy-MM-dd hh:mm:ss") : string.Empty; + //检查人 + lblInspectUser.Text = model.InspectUserName; + //处理人 + lblApproveUser.Text = model.HandleUserName; + hidApproveUserId.Text = model.HandleUser; + //处理时间 + lblApproveTime.Text = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); + } + } + + /// + /// 问题图片 + /// + protected void imgBtnQuestionFile_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", QuestionEditImg, this.TailTermId + "q", Const.InspectTailTerm))); + } + + /// + /// 整改图片 + /// + protected void imgBtnRectifyFile_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?type={0}&toKeyId={1}&path=FileUpload/CheckControl&menuId={2}", RectifyEditImg, this.TailTermId + "h", Const.InspectTailTerm))); + } + + /// + /// 处理退回 + /// + protected void btnReturn_Click(object sender, EventArgs e) + { + var tailTerm = Funs.DB.FeedingRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId); + if (tailTerm != null) + { + tailTerm.ApproveState = 2; + var model = new FeedingRun_InspectTermApproveRecords(); + model.InspectTermId = Guid.NewGuid().ToString(); + model.ProjectId = this.CurrUser.LoginProjectId; + model.TermItemId = tailTerm.TermItemId; + model.TailTermId = this.TailTermId; + model.ApproveOpinion = txtApproveOpinion.Text; + model.ApproveTime = DateTime.Parse(lblApproveTime.Text); + model.ApproveUser = hidApproveUserId.Text; + //0:处理记录1:审核记录 + model.ApproveType = 0; + //0:退回1:通过 + model.ApproveState = 0; + model.AddUser = this.CurrUser.UserId; + model.AddTime = DateTime.Now; + Funs.DB.FeedingRun_InspectTermApproveRecords.InsertOnSubmit(model); + Funs.DB.SubmitChanges(); + ShowNotify("退回成功!", MessageBoxIcon.Success); + PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + } + } + + /// + /// 处理通过并提交审核 + /// + protected void btnPass_Click(object sender, EventArgs e) + { + var tailTerm = Funs.DB.FeedingRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == this.TailTermId); + if (tailTerm != null) + { + tailTerm.ApproveState = 4; + var model = new FeedingRun_InspectTermApproveRecords(); + model.InspectTermId = Guid.NewGuid().ToString(); + model.ProjectId = this.CurrUser.LoginProjectId; + model.TermItemId = tailTerm.TermItemId; + model.TailTermId = this.TailTermId; + model.ApproveOpinion = txtApproveOpinion.Text; + model.ApproveTime = DateTime.Parse(lblApproveTime.Text); + model.ApproveUser = hidApproveUserId.Text; + //0:处理记录1:审核记录 + model.ApproveType = 0; + //0:退回1:通过 + model.ApproveState = 1; + model.AddUser = this.CurrUser.UserId; + model.AddTime = DateTime.Now; + Funs.DB.FeedingRun_InspectTermApproveRecords.InsertOnSubmit(model); + Funs.DB.SubmitChanges(); + ShowNotify("处理成功!", MessageBoxIcon.Success); + PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + } + } + + /// + /// 关闭 + /// + protected void WindowAtt_Close(object sender, WindowCloseEventArgs e) + { + + } + + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermHandle.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermHandle.aspx.designer.cs new file mode 100644 index 00000000..064b967d --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermHandle.aspx.designer.cs @@ -0,0 +1,260 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.Feeding +{ + + + public partial class TailTermHandle + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// SimpleForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form SimpleForm1; + + /// + /// ContentPanel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ContentPanel ContentPanel1; + + /// + /// Form2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form Form2; + + /// + /// lblProjectName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblProjectName; + + /// + /// lblTailTermCode 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblTailTermCode; + + /// + /// lblConstructionUnit 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblConstructionUnit; + + /// + /// lblTermItemName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblTermItemName; + + /// + /// lblQuestionDesc 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblQuestionDesc; + + /// + /// lblRectifyOpinion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblRectifyOpinion; + + /// + /// lblInspectUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblInspectUser; + + /// + /// lblAdjustCompleteTime 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblAdjustCompleteTime; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// imgBtnQuestionFile 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button imgBtnQuestionFile; + + /// + /// Panel2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel2; + + /// + /// lblAttach 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblAttach; + + /// + /// imgBtnRectifyFile 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button imgBtnRectifyFile; + + /// + /// lblApproveUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblApproveUser; + + /// + /// hidApproveUserId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.HiddenField hidApproveUserId; + + /// + /// lblApproveTime 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label lblApproveTime; + + /// + /// txtApproveOpinion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextArea txtApproveOpinion; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// ToolbarFill1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarFill ToolbarFill1; + + /// + /// btnReturn 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnReturn; + + /// + /// btnPass 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnPass; + + /// + /// WindowAtt 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window WindowAtt; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermHandleList.aspx b/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermHandleList.aspx new file mode 100644 index 00000000..e6667478 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermHandleList.aspx @@ -0,0 +1,147 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TailTermHandleList.aspx.cs" Inherits="FineUIPro.Web.TestRun.Feeding.TailTermHandleList" %> + + + + + + + + + 质量巡检处理确认 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermHandleList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermHandleList.aspx.cs new file mode 100644 index 00000000..e4f65791 --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermHandleList.aspx.cs @@ -0,0 +1,196 @@ +using BLL; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.SqlClient; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.TestRun.Feeding +{ + public partial class TailTermHandleList : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + //绑定数据 + InitTreeMenu(); + } + } + + #region 树绑定 + + /// + /// 加载树 + /// + private void InitTreeMenu() + { + this.tvControlItem.Nodes.Clear(); + TreeNode rootNode = new TreeNode(); + rootNode.Text = "检查表"; + rootNode.NodeID = "0"; + rootNode.Expanded = true; + rootNode.ToolTip = ""; + rootNode.EnableClickEvent = true; + this.tvControlItem.Nodes.Add(rootNode); + var termIds = new List(); + var tailTerms = Funs.DB.FeedingRun_InspectTailTerm.Where(x => x.HandleUser == this.CurrUser.UserId && x.ProjectId == this.CurrUser.LoginProjectId).ToList(); + if (tailTerms.Count > 0) + { + termIds = tailTerms.ConvertAll(x => x.TermItemId); + } + var userSubInspects = Funs.DB.FeedingRun_SubInspectTermItem.Where(x => termIds.Contains(x.TermItemId) && x.ProjectId == this.CurrUser.LoginProjectId).ToList(); + if (userSubInspects.Count == 0) return; + var subInstallationIds = userSubInspects.ConvertAll(x => x.InstallationId); + var list = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 1 && subInstallationIds.Contains(x.PreRunId)); + if (list.Count() > 0) + { + foreach (var item in list) + { + TreeNode rootOneNode = new TreeNode(); + rootOneNode.NodeID = item.PreRunId; + rootOneNode.Text = item.PreRunName; + rootOneNode.ToolTip = item.PreRunName; + rootOneNode.CommandName = ""; + rootOneNode.EnableClickEvent = true; + rootOneNode.EnableExpandEvent = false; + rootNode.Nodes.Add(rootOneNode); + rootOneNode.Expanded = true; + } + } + } + + /// + /// 点击TreeView + /// + protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) + { + this.BindGrid(); + } + + #endregion + + #region 绑定数据 + + /// + /// 数据绑定 + /// + public void BindGrid() + { + string strSql = @"select a.TailTermId,a.ProjectId,d.ProjectCode,d.ProjectName,a.TailTermCode,a.ConstructionUnit,b.UnitName,a.SubInspectId,a.TermItemId,c.WorkInspectName,a.QuestionDesc,a.RectifyTime,a.RectifyOpinion,a.InspectUser,e.UserName as InspectUserName,a.ApproveUser,f.UserName as ApproveUserName,a.HandleUser,g.UserName as HandleUserName,a.ApproveState,(case a.ApproveState when 0 then '待提交处理' when 1 then '待处理' when 2 then '处理退回' when 3 then '审核退回' when 4 then '待审核' when 5 then '审核通过' else '' end) as ApproveStateName,a.AddTime,a.AdjustCompleteTime,DATEDIFF(DAY, GETDATE(),a.AdjustCompleteTime) as AdjustDiffDay from FeedingRun_InspectTailTerm as a inner join Base_Unit as b on a.ConstructionUnit=b.UnitId inner join FeedingRun_SubInspectTermItem as c on c.TermItemId=a.TermItemId inner join Base_Project as d on d.ProjectId=a.ProjectId inner join Sys_User as e on e.UserId=a.InspectUser inner join Sys_User as f on f.UserId=a.ApproveUser inner join Sys_User as g on g.UserId=a.HandleUser where 1=1 and a.ProjectId=@projectid and a.HandleUser=@HandleUser and a.ApproveState>=1"; + List listStr = new List(); + listStr.Add(new SqlParameter("@projectid", this.CurrUser.LoginProjectId)); + listStr.Add(new SqlParameter("@HandleUser", this.CurrUser.UserId)); + if (!string.IsNullOrWhiteSpace(this.tvControlItem.SelectedNodeID)) + { + strSql += " and c.InstallationId=@InstallationId"; + listStr.Add(new SqlParameter("@InstallationId", this.tvControlItem.SelectedNodeID)); + } + //审核状态 + if (!string.IsNullOrWhiteSpace(ddlApproveState.SelectedValue)) + { + strSql += " and a.ApproveState=@ApproveState"; + listStr.Add(new SqlParameter("@ApproveState", ddlApproveState.SelectedValue)); + } + strSql += " order by a.AddTime asc"; + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); + Grid1.RecordCount = tb.Rows.Count; + var table = this.GetPagedDataTable(Grid1, tb); + Grid1.DataSource = table; + Grid1.DataBind(); + } + + /// + /// 分页 + /// + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) + { + Grid1.PageIndex = e.NewPageIndex; + BindGrid(); + } + + /// + /// 双击事件 + /// + protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) + { + btnMenuApprove_Click(null, null); + } + + /// + /// 分页下拉框 + /// + protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) + { + Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); + BindGrid(); + } + + /// + /// 排序 + /// + protected void Grid1_Sort(object sender, GridSortEventArgs e) + { + BindGrid(); + } + + #endregion + + #region 按钮 + + /// + /// 关闭弹框 + /// + protected void Window1_Close(object sender, WindowCloseEventArgs e) + { + BindGrid(); + } + + /// + /// 处理 + /// + protected void btnReview_Click(object sender, EventArgs e) + { + btnMenuApprove_Click(null, null); + } + + /// + /// 处理 + /// + protected void btnMenuApprove_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); + return; + } + + var passLs = new List() { 1, 3 }; + var model = Funs.DB.FeedingRun_InspectTailTerm.FirstOrDefault(x => x.TailTermId == Grid1.SelectedRowID); + if (model != null) + { + if (!passLs.Contains(model.ApproveState.Value)) + { + Alert.ShowInTop("只可处理“待处理”和“审核退回”的记录!", MessageBoxIcon.Warning); + return; + } + } + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TailTermHandle.aspx?TailTermId={0}", Grid1.SelectedRowID, "审核 - "))); + } + + /// + /// 搜索 + /// + protected void btnQuery_Click(object sender, EventArgs e) + { + BindGrid(); + } + + #endregion + + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermHandleList.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermHandleList.aspx.designer.cs new file mode 100644 index 00000000..f52c9e0b --- /dev/null +++ b/SGGL/FineUIPro.Web/TestRun/Feeding/TailTermHandleList.aspx.designer.cs @@ -0,0 +1,161 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.TestRun.Feeding +{ + + + public partial class TailTermHandleList + { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// panelLeftRegion 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel panelLeftRegion; + + /// + /// tvControlItem 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Tree tvControlItem; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// ddlApproveState 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlApproveState; + + /// + /// btnQuery 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnQuery; + + /// + /// btnReview 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnReview; + + /// + /// ToolbarSeparator1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1; + + /// + /// ToolbarText1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarText ToolbarText1; + + /// + /// ddlPageSize 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlPageSize; + + /// + /// Window1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window Window1; + + /// + /// Menu1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Menu Menu1; + + /// + /// btnMenuApprove 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuApprove; + } +} diff --git a/SGGL/FineUIPro.Web/TestRun/Report/PreRunSchedule.aspx b/SGGL/FineUIPro.Web/TestRun/Report/PreRunSchedule.aspx index b4646745..bc4b880b 100644 --- a/SGGL/FineUIPro.Web/TestRun/Report/PreRunSchedule.aspx +++ b/SGGL/FineUIPro.Web/TestRun/Report/PreRunSchedule.aspx @@ -67,6 +67,8 @@ + + diff --git a/SGGL/FineUIPro.Web/TestRun/Report/PreRunSchedule.aspx.cs b/SGGL/FineUIPro.Web/TestRun/Report/PreRunSchedule.aspx.cs index b72210c2..ed10f8d7 100644 --- a/SGGL/FineUIPro.Web/TestRun/Report/PreRunSchedule.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/Report/PreRunSchedule.aspx.cs @@ -180,6 +180,7 @@ namespace FineUIPro.Web.TestRun.Report GridPreRun.DataBind(); JObject summary = new JObject(); summary.Add("WorkPackNum", result.Sum(x => x.WorkPackNum)); + summary.Add("WorkPackNotStartedNum", result.Sum(x => x.WorkPackNotStartedNum)); summary.Add("WorkPackNoCloseNum", result.Sum(x => x.WorkPackNoCloseNum)); summary.Add("WorkPackCloseNum", result.Sum(x => x.WorkPackCloseNum)); summary.Add("InspectNum", result.Sum(x => x.InspectNum)); @@ -222,6 +223,7 @@ namespace FineUIPro.Web.TestRun.Report ws.SetColumnWidth(8, (20 * 256)); ws.SetColumnWidth(9, (20 * 256)); ws.SetColumnWidth(10, (20 * 256)); + ws.SetColumnWidth(11, (20 * 256)); #endregion @@ -235,7 +237,7 @@ namespace FineUIPro.Web.TestRun.Report #region 头部 - ws = ExcelCreateRowTitle(ws, hssfworkbook, style, 0, 0, 0, 10); + ws = ExcelCreateRowTitle(ws, hssfworkbook, style, 0, 0, 0, 11); //行1 ws.GetRow(0).GetCell(0).CellStyle = styleBold; ws.GetRow(0).GetCell(0).SetCellValue("工作包名称"); @@ -250,15 +252,17 @@ namespace FineUIPro.Web.TestRun.Report ws.GetRow(0).GetCell(5).CellStyle = styleBold; ws.GetRow(0).GetCell(5).SetCellValue("工作包数量"); ws.GetRow(0).GetCell(6).CellStyle = styleBold; - ws.GetRow(0).GetCell(6).SetCellValue("工作包未关闭数量"); + ws.GetRow(0).GetCell(6).SetCellValue("工作包未开始数量"); ws.GetRow(0).GetCell(7).CellStyle = styleBold; - ws.GetRow(0).GetCell(7).SetCellValue("工作包已关闭数量"); + ws.GetRow(0).GetCell(7).SetCellValue("工作包未关闭数量"); ws.GetRow(0).GetCell(8).CellStyle = styleBold; - ws.GetRow(0).GetCell(8).SetCellValue("检查表数量"); + ws.GetRow(0).GetCell(8).SetCellValue("工作包已关闭数量"); ws.GetRow(0).GetCell(9).CellStyle = styleBold; - ws.GetRow(0).GetCell(9).SetCellValue("检查表未关闭数量"); + ws.GetRow(0).GetCell(9).SetCellValue("检查表数量"); ws.GetRow(0).GetCell(10).CellStyle = styleBold; - ws.GetRow(0).GetCell(10).SetCellValue("检查表已关闭数量"); + ws.GetRow(0).GetCell(10).SetCellValue("检查表未关闭数量"); + ws.GetRow(0).GetCell(11).CellStyle = styleBold; + ws.GetRow(0).GetCell(11).SetCellValue("检查表已关闭数量"); #endregion @@ -266,7 +270,7 @@ namespace FineUIPro.Web.TestRun.Report var start = 1; var end = result.Count; - ws = ExcelCreateRowTitle(ws, hssfworkbook, style, start, end, 0, 10); + ws = ExcelCreateRowTitle(ws, hssfworkbook, style, start, end, 0, 11); //数据 var dataIndex = 1; @@ -278,11 +282,12 @@ namespace FineUIPro.Web.TestRun.Report ws.GetRow(dataIndex).GetCell(3).SetCellValue(item.SystemName); ws.GetRow(dataIndex).GetCell(4).SetCellValue(item.SubsystemName); ws.GetRow(dataIndex).GetCell(5).SetCellValue(item.WorkPackNum); - ws.GetRow(dataIndex).GetCell(6).SetCellValue(item.WorkPackNoCloseNum); - ws.GetRow(dataIndex).GetCell(7).SetCellValue(item.WorkPackCloseNum); - ws.GetRow(dataIndex).GetCell(8).SetCellValue(item.InspectNum); - ws.GetRow(dataIndex).GetCell(9).SetCellValue(item.InspectNoCloseNum); - ws.GetRow(dataIndex).GetCell(10).SetCellValue(item.InspectCloseNum); + ws.GetRow(dataIndex).GetCell(6).SetCellValue(item.WorkPackNotStartedNum); + ws.GetRow(dataIndex).GetCell(7).SetCellValue(item.WorkPackNoCloseNum); + ws.GetRow(dataIndex).GetCell(8).SetCellValue(item.WorkPackCloseNum); + ws.GetRow(dataIndex).GetCell(9).SetCellValue(item.InspectNum); + ws.GetRow(dataIndex).GetCell(10).SetCellValue(item.InspectNoCloseNum); + ws.GetRow(dataIndex).GetCell(11).SetCellValue(item.InspectCloseNum); dataIndex++; } @@ -290,16 +295,17 @@ namespace FineUIPro.Web.TestRun.Report #region 尾部 - ws = ExcelCreateRowTitle(ws, hssfworkbook, style, end + 1, end + 1, 0, 10); + ws = ExcelCreateRowTitle(ws, hssfworkbook, style, end + 1, end + 1, 0, 11); var region = new CellRangeAddress(end + 1, end + 1, 0, 4); ws.AddMergedRegion(region); ws.GetRow(end + 1).GetCell(0).SetCellValue("合计"); ws.GetRow(end + 1).GetCell(5).SetCellValue(result.Count > 0 ? result.Sum(x => x.WorkPackNum).ToString() : "0"); - ws.GetRow(end + 1).GetCell(6).SetCellValue(result.Count > 0 ? result.Sum(x => x.WorkPackNoCloseNum).ToString() : "0"); - ws.GetRow(end + 1).GetCell(7).SetCellValue(result.Count > 0 ? result.Sum(x => x.WorkPackCloseNum).ToString() : "0"); - ws.GetRow(end + 1).GetCell(8).SetCellValue(result.Count > 0 ? result.Sum(x => x.InspectNum).ToString() : "0"); - ws.GetRow(end + 1).GetCell(9).SetCellValue(result.Count > 0 ? result.Sum(x => x.InspectNoCloseNum).ToString() : "0"); - ws.GetRow(end + 1).GetCell(10).SetCellValue(result.Count > 0 ? result.Sum(x => x.InspectCloseNum).ToString() : "0"); + ws.GetRow(end + 1).GetCell(6).SetCellValue(result.Count > 0 ? result.Sum(x => x.WorkPackNotStartedNum).ToString() : "0"); + ws.GetRow(end + 1).GetCell(7).SetCellValue(result.Count > 0 ? result.Sum(x => x.WorkPackNoCloseNum).ToString() : "0"); + ws.GetRow(end + 1).GetCell(8).SetCellValue(result.Count > 0 ? result.Sum(x => x.WorkPackCloseNum).ToString() : "0"); + ws.GetRow(end + 1).GetCell(9).SetCellValue(result.Count > 0 ? result.Sum(x => x.InspectNum).ToString() : "0"); + ws.GetRow(end + 1).GetCell(10).SetCellValue(result.Count > 0 ? result.Sum(x => x.InspectNoCloseNum).ToString() : "0"); + ws.GetRow(end + 1).GetCell(11).SetCellValue(result.Count > 0 ? result.Sum(x => x.InspectCloseNum).ToString() : "0"); #endregion @@ -438,6 +444,7 @@ namespace FineUIPro.Web.TestRun.Report } model.WorkPackCloseNum = 0; model.WorkPackNoCloseNum = 0; + model.WorkPackNotStartedNum = 0; var subsystemids = itemQueryList.ConvertAll(a => a.SubSystemId).Distinct(); foreach (var itemsubid in subsystemids) { @@ -465,7 +472,7 @@ namespace FineUIPro.Web.TestRun.Report } else { - model.WorkPackNoCloseNum += 1; + model.WorkPackNotStartedNum += 1; } } list.Add(model); @@ -512,11 +519,11 @@ namespace FineUIPro.Web.TestRun.Report ///
public string AllNum { get; set; } /// - /// 未关闭任务单数量 + /// 未关闭数量 /// public string NoCloseNum { get; set; } /// - /// 已关闭任务单数量 + /// 已关闭数量 /// public string CloseNum { get; set; } } @@ -579,6 +586,10 @@ namespace FineUIPro.Web.TestRun.Report /// public int WorkPackNoCloseNum { get; set; } /// + /// 工作包未开始数量 + /// + public int WorkPackNotStartedNum { get; set; } + /// /// 工作包已关闭数量 /// public int WorkPackCloseNum { get; set; } diff --git a/SGGL/FineUIPro.Web/TestRun/Report/ScheduleSetUp.aspx b/SGGL/FineUIPro.Web/TestRun/Report/ScheduleSetUp.aspx index a44b708e..a09e302f 100644 --- a/SGGL/FineUIPro.Web/TestRun/Report/ScheduleSetUp.aspx +++ b/SGGL/FineUIPro.Web/TestRun/Report/ScheduleSetUp.aspx @@ -58,6 +58,11 @@ + + + + + @@ -99,6 +104,11 @@ + + + + + @@ -188,12 +198,13 @@ $.each(modifiedData, function (index, rowData) { var allNum = parseInt(rowData.values['AllNum']); + var notStartedNum = parseInt(rowData.values['NotStartedNum']); var progressNum = parseInt(rowData.values['ProgressNum']); var completeNum = parseInt(rowData.values['CompleteNum']); var workPackName = rowData.values['WorkPackName']; - if (allNum != (progressNum + completeNum)) { + if (allNum != (notStartedNum + progressNum + completeNum)) { F.alert({ - message: '工作包(' + workPackName + ')全部数量不等于进行中数量加已完成数量!', + message: '工作包(' + workPackName + ')全部数量不等于未开始数量+进行中数量+已完成数量!', ok: function () { grid1.startEdit(rowData.id, 'AllNum'); } @@ -210,16 +221,19 @@ function onGridYscAfterEdit(event, value, params) { var me = F('<%= GridYsc.ClientID %>'); var allNumTotal = 0; + var notStartedNumTotal = 0; var progressNumTotal = 0; var completeNumTotal = 0; me.getRowEls().each(function (index, tr) { debugger; allNumTotal += me.getCellValue(tr, 'AllNum'); + notStartedNumTotal += me.getCellValue(tr, 'NotStartedNum'); progressNumTotal += me.getCellValue(tr, 'ProgressNum'); completeNumTotal += me.getCellValue(tr, 'CompleteNum'); }); // 第三个参数 true,强制更新,不显示左上角的更改标识 me.updateSummaryCellValue('AllNum', allNumTotal, true); + me.updateSummaryCellValue('NotStartedNum', notStartedNum, true); me.updateSummaryCellValue('ProgressNum', progressNumTotal, true); me.updateSummaryCellValue('CompleteNum', completeNumTotal, true); } @@ -231,12 +245,13 @@ $.each(modifiedData, function (index, rowData) { var allNum = parseInt(rowData.values['AllNum']); + var notStartedNum = parseInt(rowData.values['NotStartedNum']); var progressNum = parseInt(rowData.values['ProgressNum']); var completeNum = parseInt(rowData.values['CompleteNum']); var workPackName = rowData.values['WorkPackName']; - if (allNum != (progressNum + completeNum)) { + if (allNum != (notStartedNum + progressNum + completeNum)) { F.alert({ - message: '工作包(' + workPackName + ')全部数量不等于进行中数量加已完成数量!', + message: '工作包(' + workPackName + ')全部数量不等于未开始数量+进行中数量+已完成数量!', ok: function () { grid1.startEdit(rowData.id, 'AllNum'); } @@ -257,13 +272,14 @@ var progressNumTotal = 0; var completeNumTotal = 0; me.getRowEls().each(function (index, tr) { - debugger; allNumTotal += me.getCellValue(tr, 'AllNum'); + notStartedNumTotal += me.getCellValue(tr, 'NotStartedNum'); progressNumTotal += me.getCellValue(tr, 'ProgressNum'); completeNumTotal += me.getCellValue(tr, 'CompleteNum'); }); // 第三个参数 true,强制更新,不显示左上角的更改标识 me.updateSummaryCellValue('AllNum', allNumTotal, true); + me.updateSummaryCellValue('NotStartedNum', notStartedNumTotal, true); me.updateSummaryCellValue('ProgressNum', progressNumTotal, true); me.updateSummaryCellValue('CompleteNum', completeNumTotal, true); } diff --git a/SGGL/FineUIPro.Web/TestRun/Report/ScheduleSetUp.aspx.cs b/SGGL/FineUIPro.Web/TestRun/Report/ScheduleSetUp.aspx.cs index a00e51b6..0ddb1ea1 100644 --- a/SGGL/FineUIPro.Web/TestRun/Report/ScheduleSetUp.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/Report/ScheduleSetUp.aspx.cs @@ -48,6 +48,7 @@ namespace FineUIPro.Web.TestRun.Report GridYsc.DataBind(); JObject summary = new JObject(); summary.Add("AllNum", result.Sum(x => x.AllNum)); + summary.Add("NotStartedNum", result.Sum(x => x.NotStartedNum)); summary.Add("ProgressNum", result.Sum(x => x.ProgressNum)); summary.Add("CompleteNum", result.Sum(x => x.CompleteNum)); GridYsc.SummaryData = summary; @@ -75,6 +76,7 @@ namespace FineUIPro.Web.TestRun.Report ProjectId = a.ProjectId, States = a.States, AllNum = a.AllNum, + NotStartedNum = a.NotStartedNum, ProgressNum = a.ProgressNum, CompleteNum = a.CompleteNum, CompleteRate = a.CompleteRate, @@ -121,6 +123,7 @@ namespace FineUIPro.Web.TestRun.Report model.AllNum = itemQueryList.Count(x => x.WorkPackId == itemPack.WorkPackId); model.ProgressNum = 0; model.CompleteNum = 0; + model.NotStartedNum = 0; var subsystemids = itemQueryList.ConvertAll(a => a.SubSystemId).Distinct(); foreach (var itemsubid in subsystemids) { @@ -148,7 +151,7 @@ namespace FineUIPro.Web.TestRun.Report } else { - model.ProgressNum += 1; + model.NotStartedNum += 1; } } var rate = model.CompleteNum > 0 ? (decimal)Math.Round((float)model.CompleteNum / (float)model.AllNum * 100, 2, MidpointRounding.AwayFromZero) : 0; @@ -204,6 +207,7 @@ namespace FineUIPro.Web.TestRun.Report model.ProjectId = this.CurrUser.LoginProjectId; model.States = 1; model.AllNum = !string.IsNullOrWhiteSpace(values.Value("AllNum")) ? int.Parse(values.Value("AllNum")) : 0; + model.NotStartedNum = !string.IsNullOrWhiteSpace(values.Value("NotStartedNum")) ? int.Parse(values.Value("NotStartedNum")) : 0; model.ProgressNum = !string.IsNullOrWhiteSpace(values.Value("ProgressNum")) ? int.Parse(values.Value("ProgressNum")) : 0; model.CompleteNum = !string.IsNullOrWhiteSpace(values.Value("CompleteNum")) ? int.Parse(values.Value("CompleteNum")) : 0; var rate = model.CompleteNum > 0 ? (decimal)Math.Round((float)model.CompleteNum / (float)model.AllNum * 100, 2, MidpointRounding.AwayFromZero) : 0; @@ -255,6 +259,7 @@ namespace FineUIPro.Web.TestRun.Report ws.SetColumnWidth(1, (20 * 256)); ws.SetColumnWidth(2, (20 * 256)); ws.SetColumnWidth(3, (20 * 256)); + ws.SetColumnWidth(4, (20 * 256)); #endregion @@ -268,16 +273,18 @@ namespace FineUIPro.Web.TestRun.Report #region 头部 - ws = ExcelCreateRowTitle(ws, hssfworkbook, style, 0, 0, 0, 3); + ws = ExcelCreateRowTitle(ws, hssfworkbook, style, 0, 0, 0, 4); //行1 ws.GetRow(0).GetCell(0).CellStyle = styleBold; ws.GetRow(0).GetCell(0).SetCellValue("工作包名称"); ws.GetRow(0).GetCell(1).CellStyle = styleBold; ws.GetRow(0).GetCell(1).SetCellValue("全部数量"); ws.GetRow(0).GetCell(2).CellStyle = styleBold; - ws.GetRow(0).GetCell(2).SetCellValue("进行中数量"); + ws.GetRow(0).GetCell(2).SetCellValue("未开始数量"); ws.GetRow(0).GetCell(3).CellStyle = styleBold; - ws.GetRow(0).GetCell(3).SetCellValue("已完成数量"); + ws.GetRow(0).GetCell(3).SetCellValue("进行中数量"); + ws.GetRow(0).GetCell(4).CellStyle = styleBold; + ws.GetRow(0).GetCell(4).SetCellValue("已完成数量"); #endregion @@ -285,7 +292,7 @@ namespace FineUIPro.Web.TestRun.Report var start = 1; var end = result.Count; - ws = ExcelCreateRowTitle(ws, hssfworkbook, style, start, end, 0, 3); + ws = ExcelCreateRowTitle(ws, hssfworkbook, style, start, end, 0, 4); //数据 var dataIndex = 1; @@ -293,8 +300,9 @@ namespace FineUIPro.Web.TestRun.Report { ws.GetRow(dataIndex).GetCell(0).SetCellValue(item.WorkPackName); ws.GetRow(dataIndex).GetCell(1).SetCellValue(item.AllNum.ToString()); - ws.GetRow(dataIndex).GetCell(2).SetCellValue(item.ProgressNum.ToString()); - ws.GetRow(dataIndex).GetCell(3).SetCellValue(item.CompleteNum.ToString()); + ws.GetRow(dataIndex).GetCell(2).SetCellValue(item.NotStartedNum.ToString()); + ws.GetRow(dataIndex).GetCell(3).SetCellValue(item.ProgressNum.ToString()); + ws.GetRow(dataIndex).GetCell(4).SetCellValue(item.CompleteNum.ToString()); dataIndex++; } @@ -302,11 +310,12 @@ namespace FineUIPro.Web.TestRun.Report #region 尾部 - ws = ExcelCreateRowTitle(ws, hssfworkbook, style, end + 1, end + 1, 0, 3); + ws = ExcelCreateRowTitle(ws, hssfworkbook, style, end + 1, end + 1, 0, 4); ws.GetRow(end + 1).GetCell(0).SetCellValue("合计"); ws.GetRow(end + 1).GetCell(1).SetCellValue(result.Count > 0 ? result.Sum(x => x.AllNum).ToString() : "0"); - ws.GetRow(end + 1).GetCell(2).SetCellValue(result.Count > 0 ? result.Sum(x => x.ProgressNum).ToString() : "0"); - ws.GetRow(end + 1).GetCell(3).SetCellValue(result.Count > 0 ? result.Sum(x => x.CompleteNum).ToString() : "0"); + ws.GetRow(end + 1).GetCell(2).SetCellValue(result.Count > 0 ? result.Sum(x => x.NotStartedNum).ToString() : "0"); + ws.GetRow(end + 1).GetCell(3).SetCellValue(result.Count > 0 ? result.Sum(x => x.ProgressNum).ToString() : "0"); + ws.GetRow(end + 1).GetCell(4).SetCellValue(result.Count > 0 ? result.Sum(x => x.CompleteNum).ToString() : "0"); #endregion @@ -351,6 +360,7 @@ namespace FineUIPro.Web.TestRun.Report JObject summary = new JObject(); summary.Add("AllNum", result.Sum(x => x.AllNum)); + summary.Add("NotStartedNum", result.Sum(x => x.NotStartedNum)); summary.Add("ProgressNum", result.Sum(x => x.ProgressNum)); summary.Add("CompleteNum", result.Sum(x => x.CompleteNum)); GridSc.SummaryData = summary; @@ -378,6 +388,7 @@ namespace FineUIPro.Web.TestRun.Report ProjectId = a.ProjectId, States = a.States, AllNum = a.AllNum, + NotStartedNum = a.NotStartedNum, ProgressNum = a.ProgressNum, CompleteNum = a.CompleteNum, CompleteRate = a.CompleteRate, @@ -419,13 +430,15 @@ namespace FineUIPro.Web.TestRun.Report var itemInspect = inspectlist.FirstOrDefault(x => x.WorkPackId == item.WorkPackId); model.AllNum = itemInspect.AllNum; model.ProgressNum = itemInspect.NoCloseNum; + model.NotStartedNum = 0; model.CompleteNum = itemInspect.CloseNum; } else { - model.AllNum = 0; + model.AllNum = 1; model.ProgressNum = 0; model.CompleteNum = 0; + model.NotStartedNum = 1; } model.CompleteRate = model.CompleteNum > 0 ? (decimal)Math.Round((float)model.CompleteNum / (float)model.AllNum, 2, MidpointRounding.AwayFromZero) : 0; model.AddUser = this.CurrUser.UserId; @@ -478,6 +491,7 @@ namespace FineUIPro.Web.TestRun.Report model.ProjectId = this.CurrUser.LoginProjectId; model.States = 2; model.AllNum = !string.IsNullOrWhiteSpace(values.Value("AllNum")) ? int.Parse(values.Value("AllNum")) : 0; + model.NotStartedNum = !string.IsNullOrWhiteSpace(values.Value("NotStartedNum")) ? int.Parse(values.Value("NotStartedNum")) : 0; model.ProgressNum = !string.IsNullOrWhiteSpace(values.Value("ProgressNum")) ? int.Parse(values.Value("ProgressNum")) : 0; model.CompleteNum = !string.IsNullOrWhiteSpace(values.Value("CompleteNum")) ? int.Parse(values.Value("CompleteNum")) : 0; model.CompleteRate = model.CompleteNum > 0 ? (decimal)Math.Round((float)model.CompleteNum / (float)model.AllNum, 2, MidpointRounding.AwayFromZero) : 0; @@ -525,6 +539,7 @@ namespace FineUIPro.Web.TestRun.Report ws.SetColumnWidth(1, (20 * 256)); ws.SetColumnWidth(2, (20 * 256)); ws.SetColumnWidth(3, (20 * 256)); + ws.SetColumnWidth(4, (20 * 256)); #endregion @@ -538,16 +553,18 @@ namespace FineUIPro.Web.TestRun.Report #region 头部 - ws = ExcelCreateRowTitle(ws, hssfworkbook, style, 0, 0, 0, 3); + ws = ExcelCreateRowTitle(ws, hssfworkbook, style, 0, 0, 0, 4); //行1 ws.GetRow(0).GetCell(0).CellStyle = styleBold; ws.GetRow(0).GetCell(0).SetCellValue("工作包名称"); ws.GetRow(0).GetCell(1).CellStyle = styleBold; ws.GetRow(0).GetCell(1).SetCellValue("全部数量"); ws.GetRow(0).GetCell(2).CellStyle = styleBold; - ws.GetRow(0).GetCell(2).SetCellValue("进行中数量"); + ws.GetRow(0).GetCell(2).SetCellValue("未开始数量"); ws.GetRow(0).GetCell(3).CellStyle = styleBold; - ws.GetRow(0).GetCell(3).SetCellValue("已完成数量"); + ws.GetRow(0).GetCell(3).SetCellValue("进行中数量"); + ws.GetRow(0).GetCell(4).CellStyle = styleBold; + ws.GetRow(0).GetCell(4).SetCellValue("已完成数量"); #endregion @@ -555,7 +572,7 @@ namespace FineUIPro.Web.TestRun.Report var start = 1; var end = result.Count; - ws = ExcelCreateRowTitle(ws, hssfworkbook, style, start, end, 0, 3); + ws = ExcelCreateRowTitle(ws, hssfworkbook, style, start, end, 0, 4); //数据 var dataIndex = 1; @@ -563,8 +580,9 @@ namespace FineUIPro.Web.TestRun.Report { ws.GetRow(dataIndex).GetCell(0).SetCellValue(item.WorkPackName); ws.GetRow(dataIndex).GetCell(1).SetCellValue(item.AllNum.ToString()); - ws.GetRow(dataIndex).GetCell(2).SetCellValue(item.ProgressNum.ToString()); - ws.GetRow(dataIndex).GetCell(3).SetCellValue(item.CompleteNum.ToString()); + ws.GetRow(dataIndex).GetCell(2).SetCellValue(item.NotStartedNum.ToString()); + ws.GetRow(dataIndex).GetCell(3).SetCellValue(item.ProgressNum.ToString()); + ws.GetRow(dataIndex).GetCell(4).SetCellValue(item.CompleteNum.ToString()); dataIndex++; } @@ -572,12 +590,12 @@ namespace FineUIPro.Web.TestRun.Report #region 尾部 - ws = ExcelCreateRowTitle(ws, hssfworkbook, style, end + 1, end + 1, 0, 3); + ws = ExcelCreateRowTitle(ws, hssfworkbook, style, end + 1, end + 1, 0, 4); ws.GetRow(end + 1).GetCell(0).SetCellValue("合计"); ws.GetRow(end + 1).GetCell(1).SetCellValue(result.Count > 0 ? result.Sum(x => x.AllNum).ToString() : "0"); - ws.GetRow(end + 1).GetCell(2).SetCellValue(result.Count > 0 ? result.Sum(x => x.ProgressNum).ToString() : "0"); - ws.GetRow(end + 1).GetCell(3).SetCellValue(result.Count > 0 ? result.Sum(x => x.CompleteNum).ToString() : "0"); - + ws.GetRow(end + 1).GetCell(2).SetCellValue(result.Count > 0 ? result.Sum(x => x.NotStartedNum).ToString() : "0"); + ws.GetRow(end + 1).GetCell(3).SetCellValue(result.Count > 0 ? result.Sum(x => x.ProgressNum).ToString() : "0"); + ws.GetRow(end + 1).GetCell(4).SetCellValue(result.Count > 0 ? result.Sum(x => x.CompleteNum).ToString() : "0"); #endregion diff --git a/SGGL/FineUIPro.Web/TestRun/Report/ScheduleSetUp.aspx.designer.cs b/SGGL/FineUIPro.Web/TestRun/Report/ScheduleSetUp.aspx.designer.cs index 2a52987a..a56ee2ad 100644 --- a/SGGL/FineUIPro.Web/TestRun/Report/ScheduleSetUp.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/TestRun/Report/ScheduleSetUp.aspx.designer.cs @@ -149,6 +149,15 @@ namespace FineUIPro.Web.TestRun.Report /// protected global::FineUIPro.NumberBox txtAllNum; + /// + /// txtNotStartedNum 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.NumberBox txtNotStartedNum; + /// /// txtProgressNum 控件。 /// @@ -230,6 +239,15 @@ namespace FineUIPro.Web.TestRun.Report /// protected global::FineUIPro.NumberBox txtAllNum1; + /// + /// txtNotStartedNum1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.NumberBox txtNotStartedNum1; + /// /// txtProgressNum1 控件。 /// diff --git a/SGGL/FineUIPro.Web/TestRun/Report/TestRunSchedule.aspx b/SGGL/FineUIPro.Web/TestRun/Report/TestRunSchedule.aspx index 4f8e51bf..a49b5b19 100644 --- a/SGGL/FineUIPro.Web/TestRun/Report/TestRunSchedule.aspx +++ b/SGGL/FineUIPro.Web/TestRun/Report/TestRunSchedule.aspx @@ -65,6 +65,8 @@ + + diff --git a/SGGL/FineUIPro.Web/TestRun/Report/TestRunSchedule.aspx.cs b/SGGL/FineUIPro.Web/TestRun/Report/TestRunSchedule.aspx.cs index e075f720..aa5bdf9a 100644 --- a/SGGL/FineUIPro.Web/TestRun/Report/TestRunSchedule.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/Report/TestRunSchedule.aspx.cs @@ -170,6 +170,7 @@ namespace FineUIPro.Web.TestRun.Report GridTestRun.DataBind(); JObject summary = new JObject(); summary.Add("WorkPackNum", result.Sum(x => x.WorkPackNum)); + summary.Add("WorkPackNotStartedNum", result.Sum(x => x.WorkPackNotStartedNum)); summary.Add("WorkPackNoCloseNum", result.Sum(x => x.WorkPackNoCloseNum)); summary.Add("WorkPackCloseNum", result.Sum(x => x.WorkPackCloseNum)); summary.Add("InspectNum", result.Sum(x => x.InspectNum)); @@ -211,6 +212,7 @@ namespace FineUIPro.Web.TestRun.Report ws.SetColumnWidth(7, (20 * 256)); ws.SetColumnWidth(8, (20 * 256)); ws.SetColumnWidth(9, (20 * 256)); + ws.SetColumnWidth(10, (20 * 256)); #endregion @@ -224,7 +226,7 @@ namespace FineUIPro.Web.TestRun.Report #region 头部 - ws = ExcelCreateRowTitle(ws, hssfworkbook, style, 0, 0, 0, 9); + ws = ExcelCreateRowTitle(ws, hssfworkbook, style, 0, 0, 0, 10); //行1 ws.GetRow(0).GetCell(0).CellStyle = styleBold; ws.GetRow(0).GetCell(0).SetCellValue("工作包名称"); @@ -237,15 +239,17 @@ namespace FineUIPro.Web.TestRun.Report ws.GetRow(0).GetCell(4).CellStyle = styleBold; ws.GetRow(0).GetCell(4).SetCellValue("工作包数量"); ws.GetRow(0).GetCell(5).CellStyle = styleBold; - ws.GetRow(0).GetCell(5).SetCellValue("工作包未关闭数量"); + ws.GetRow(0).GetCell(5).SetCellValue("工作包未开始数量"); ws.GetRow(0).GetCell(6).CellStyle = styleBold; - ws.GetRow(0).GetCell(6).SetCellValue("工作包已关闭数量"); + ws.GetRow(0).GetCell(6).SetCellValue("工作包未关闭数量"); ws.GetRow(0).GetCell(7).CellStyle = styleBold; - ws.GetRow(0).GetCell(7).SetCellValue("检查表数量"); + ws.GetRow(0).GetCell(7).SetCellValue("工作包已关闭数量"); ws.GetRow(0).GetCell(8).CellStyle = styleBold; - ws.GetRow(0).GetCell(8).SetCellValue("检查表未关闭数量"); + ws.GetRow(0).GetCell(8).SetCellValue("检查表数量"); ws.GetRow(0).GetCell(9).CellStyle = styleBold; - ws.GetRow(0).GetCell(9).SetCellValue("检查表已关闭数量"); + ws.GetRow(0).GetCell(9).SetCellValue("检查表未关闭数量"); + ws.GetRow(0).GetCell(10).CellStyle = styleBold; + ws.GetRow(0).GetCell(10).SetCellValue("检查表已关闭数量"); #endregion @@ -253,7 +257,7 @@ namespace FineUIPro.Web.TestRun.Report var start = 1; var end = result.Count; - ws = ExcelCreateRowTitle(ws, hssfworkbook, style, start, end, 0, 9); + ws = ExcelCreateRowTitle(ws, hssfworkbook, style, start, end, 0, 10); //数据 var dataIndex = 1; @@ -264,11 +268,12 @@ namespace FineUIPro.Web.TestRun.Report ws.GetRow(dataIndex).GetCell(2).SetCellValue(item.ProcessesName); ws.GetRow(dataIndex).GetCell(3).SetCellValue(item.SystemName); ws.GetRow(dataIndex).GetCell(4).SetCellValue(item.WorkPackNum); - ws.GetRow(dataIndex).GetCell(5).SetCellValue(item.WorkPackNoCloseNum); - ws.GetRow(dataIndex).GetCell(6).SetCellValue(item.WorkPackCloseNum); - ws.GetRow(dataIndex).GetCell(7).SetCellValue(item.InspectNum); - ws.GetRow(dataIndex).GetCell(8).SetCellValue(item.InspectNoCloseNum); - ws.GetRow(dataIndex).GetCell(9).SetCellValue(item.InspectCloseNum); + ws.GetRow(dataIndex).GetCell(5).SetCellValue(item.WorkPackNotStartedNum); + ws.GetRow(dataIndex).GetCell(6).SetCellValue(item.WorkPackNoCloseNum); + ws.GetRow(dataIndex).GetCell(7).SetCellValue(item.WorkPackCloseNum); + ws.GetRow(dataIndex).GetCell(8).SetCellValue(item.InspectNum); + ws.GetRow(dataIndex).GetCell(9).SetCellValue(item.InspectNoCloseNum); + ws.GetRow(dataIndex).GetCell(10).SetCellValue(item.InspectCloseNum); dataIndex++; } @@ -276,16 +281,17 @@ namespace FineUIPro.Web.TestRun.Report #region 尾部 - ws = ExcelCreateRowTitle(ws, hssfworkbook, style, end + 1, end + 1, 0, 9); + ws = ExcelCreateRowTitle(ws, hssfworkbook, style, end + 1, end + 1, 0, 10); var region = new CellRangeAddress(end + 1, end + 1, 0, 3); ws.AddMergedRegion(region); ws.GetRow(end + 1).GetCell(0).SetCellValue("合计"); ws.GetRow(end + 1).GetCell(4).SetCellValue(result.Count > 0 ? result.Sum(x => x.WorkPackNum).ToString() : "0"); - ws.GetRow(end + 1).GetCell(5).SetCellValue(result.Count > 0 ? result.Sum(x => x.WorkPackNoCloseNum).ToString() : "0"); - ws.GetRow(end + 1).GetCell(6).SetCellValue(result.Count > 0 ? result.Sum(x => x.WorkPackCloseNum).ToString() : "0"); - ws.GetRow(end + 1).GetCell(7).SetCellValue(result.Count > 0 ? result.Sum(x => x.InspectNum).ToString() : "0"); - ws.GetRow(end + 1).GetCell(8).SetCellValue(result.Count > 0 ? result.Sum(x => x.InspectNoCloseNum).ToString() : "0"); - ws.GetRow(end + 1).GetCell(9).SetCellValue(result.Count > 0 ? result.Sum(x => x.InspectCloseNum).ToString() : "0"); + ws.GetRow(end + 1).GetCell(5).SetCellValue(result.Count > 0 ? result.Sum(x => x.WorkPackNotStartedNum).ToString() : "0"); + ws.GetRow(end + 1).GetCell(6).SetCellValue(result.Count > 0 ? result.Sum(x => x.WorkPackNoCloseNum).ToString() : "0"); + ws.GetRow(end + 1).GetCell(7).SetCellValue(result.Count > 0 ? result.Sum(x => x.WorkPackCloseNum).ToString() : "0"); + ws.GetRow(end + 1).GetCell(8).SetCellValue(result.Count > 0 ? result.Sum(x => x.InspectNum).ToString() : "0"); + ws.GetRow(end + 1).GetCell(9).SetCellValue(result.Count > 0 ? result.Sum(x => x.InspectNoCloseNum).ToString() : "0"); + ws.GetRow(end + 1).GetCell(10).SetCellValue(result.Count > 0 ? result.Sum(x => x.InspectCloseNum).ToString() : "0"); #endregion @@ -358,49 +364,6 @@ namespace FineUIPro.Web.TestRun.Report return style; } - /// - /// 试车统计实体(老) - /// - public class ScheduleBridDto - { - /// - /// 工作包主键 - /// - public string WorkPackId { get; set; } - /// - /// 工作包名称 - /// - public string WorkName { get; set; } - /// - /// 装置名称 - /// - public string InstallationName { get; set; } - /// - /// 工序名称 - /// - public string ProcessesName { get; set; } - /// - /// 系统名称 - /// - public string SystemName { get; set; } - /// - /// 子系统名称 - /// - public string SubsystemName { get; set; } - /// - /// 工作包数量 - /// - public string AllNum { get; set; } - /// - /// 未关闭任务单数量 - /// - public string NoCloseNum { get; set; } - /// - /// 已关闭任务单数量 - /// - public string CloseNum { get; set; } - } - /// /// 获取试车统计 /// @@ -432,14 +395,17 @@ namespace FineUIPro.Web.TestRun.Report item.InspectNoCloseNum = itemInspect.NoCloseNum; item.WorkPackCloseNum = itemInspect.CloseNum; item.WorkPackNoCloseNum = itemInspect.NoCloseNum; + item.WorkPackNum = itemInspect.CloseNum + itemInspect.NoCloseNum; } else { item.InspectNum = 0; item.InspectCloseNum = 0; item.InspectNoCloseNum = 0; + item.WorkPackNotStartedNum = 1; item.WorkPackNoCloseNum = 0; item.WorkPackCloseNum = 0; + item.WorkPackNum = 1; } if (driveDt.Rows.Count > 0) { @@ -487,6 +453,10 @@ namespace FineUIPro.Web.TestRun.Report /// public int WorkPackNoCloseNum { get; set; } /// + /// 工作包未开始数量 + /// + public int WorkPackNotStartedNum { get; set; } + /// /// 工作包已关闭数量 /// public int WorkPackCloseNum { get; set; } diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTemplate.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTemplate.aspx.cs index 28a1446c..1b506e88 100644 --- a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTemplate.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectTemplate.aspx.cs @@ -70,8 +70,16 @@ namespace FineUIPro.Web.TestRun.TestRunManage /// public void BindGrid() { - var list = Funs.DB.TestRun_WorkInspectTemplate.Where(x => x.WorkPackId == this.tvControlItem.SelectedNodeID).OrderBy(x => x.Sort); - Grid1.DataSource = list; + if (!string.IsNullOrWhiteSpace(txtsWorkInspectName.Text)) + { + var list = Funs.DB.TestRun_WorkInspectTemplate.Where(x => x.WorkPackId == this.tvControlItem.SelectedNodeID && x.WorkInspectName.Contains(txtsWorkInspectName.Text)).OrderBy(x => x.Sort); + Grid1.DataSource = list; + } + else + { + var list = Funs.DB.TestRun_WorkInspectTemplate.Where(x => x.WorkPackId == this.tvControlItem.SelectedNodeID).OrderBy(x => x.Sort); + Grid1.DataSource = list; + } Grid1.DataBind(); } diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx index 4e861f88..dc5ee885 100644 --- a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx @@ -36,7 +36,7 @@ - + @@ -48,7 +48,6 @@ - diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx.cs index b58970a7..d55a8283 100644 --- a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutConfirm.aspx.cs @@ -155,8 +155,7 @@ namespace FineUIPro.Web.TestRun.TestRunManage GridRow row = Grid1.Rows[i]; System.Web.UI.WebControls.RadioButtonList rblIsPass = (System.Web.UI.WebControls.RadioButtonList)row.FindControl("rblIsPass"); var termItemId = this.Grid1.Rows[i].DataKeys[0].ToString(); - var inspectedUser = this.Grid1.Rows[i].DataKeys[1].ToString(); - var model = Funs.DB.TestRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == termItemId && x.InspectedUser == inspectedUser); + var model = Funs.DB.TestRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == termItemId); if (model != null) { if (!string.IsNullOrWhiteSpace(rblIsPass.SelectedValue)) @@ -186,7 +185,7 @@ namespace FineUIPro.Web.TestRun.TestRunManage Funs.DB.SubmitChanges(); } } - var subInspectId = this.Grid1.Rows[0].DataKeys[3].ToString(); + var subInspectId = this.Grid1.Rows[0].DataKeys[1].ToString(); var subModel = Funs.DB.TestRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == subInspectId); if (subModel != null) { @@ -524,7 +523,7 @@ namespace FineUIPro.Web.TestRun.TestRunManage { System.Web.UI.WebControls.RadioButtonList rblIsPass = (System.Web.UI.WebControls.RadioButtonList)Grid1.Rows[e.RowIndex].FindControl("rblIsPass"); int isPass = 1; - if (Grid1.DataKeys[e.RowIndex][4] != null) isPass = int.Parse(Grid1.DataKeys[e.RowIndex][4].ToString()); + if (Grid1.DataKeys[e.RowIndex][2] != null) isPass = int.Parse(Grid1.DataKeys[e.RowIndex][2].ToString()); rblIsPass.SelectedValue = isPass.ToString(); if (rblIsPass.SelectedValue != "1") { diff --git a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutList.aspx.cs b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutList.aspx.cs index 5ce754b6..b972ee35 100644 --- a/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutList.aspx.cs +++ b/SGGL/FineUIPro.Web/TestRun/TestRunManage/InspectWanderAboutList.aspx.cs @@ -35,7 +35,7 @@ namespace FineUIPro.Web.TestRun.TestRunManage rootNode.ToolTip = ""; rootNode.EnableClickEvent = true; this.tvControlItem.Nodes.Add(rootNode); - var inspectTerms = Funs.DB.TestRun_SubInspectTerm.Where(x => (x.Subcontractor == this.CurrUser.UserId && x.InspectionIsAllPass == 1) || (x.Contractor == this.CurrUser.UserId && x.ContractorIsAllPass == 1) || (x.Supervision == this.CurrUser.UserId && x.SupervisionIsAllPass == 1) || (x.Owner == this.CurrUser.UserId && x.OwnerIsAllPass == 1)).ToList(); + var inspectTerms = Funs.DB.TestRun_SubInspectTerm.Where(x => (x.Subcontractor == this.CurrUser.UserId && x.InspectionIsAllPass == 1) || (x.Contractor == this.CurrUser.UserId && x.InspectionIsAllPass == 1) || (x.Supervision == this.CurrUser.UserId && x.InspectionIsAllPass == 1) || (x.Owner == this.CurrUser.UserId && x.InspectionIsAllPass == 1)).ToList(); if (inspectTerms.Count == 0) return; var systemIds = inspectTerms.ConvertAll(x => x.SystemId); var workPackIds = inspectTerms.ConvertAll(x => x.WorkPackId); @@ -117,13 +117,13 @@ namespace FineUIPro.Web.TestRun.TestRunManage public void BindGrid() { //分包商 - string subcontractorStr = $"select NEWID() as Id,a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.Subcontractor,a.Contractor,a.Supervision,a.Owner,1 as ConfirmType,'分包商' as ConfirmName,(select count (1) from PreRun_SubInspectTermItem as t where t.SubInspectId=a.SubInspectId and t.SubcontractorIsPass is null) as WaitConfirmNum,(select count (1) from PreRun_SubInspectTermItem as t where t.SubInspectId=a.SubInspectId and t.SubcontractorIsPass=1) as PassConfirmNum,(select count (1) from PreRun_SubInspectTermItem as t where t.SubInspectId=a.SubInspectId and t.SubcontractorIsPass=0) as FailConfirmNum,a.AddUser,a.AddTime,a.IsUnifyWanderAbout,(case IsUnifyWanderAbout when 1 then '是' else '否' end) as IsUnifyWanderAboutName,a.SystemId from TestRun_SubInspectTerm as a inner join Base_Project as b on a.ProjectId=b.ProjectId where 1=1 and a.InspectionIsAllPass=1 and a.ProjectId='{this.CurrUser.LoginProjectId}' and a.Subcontractor='{this.CurrUser.UserId}' "; + string subcontractorStr = $"select NEWID() as Id,a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.Subcontractor,a.Contractor,a.Supervision,a.Owner,1 as ConfirmType,'分包商' as ConfirmName,(select count (1) from TestRun_SubInspectTermItem as t where t.SubInspectId=a.SubInspectId and t.SubcontractorIsPass is null) as WaitConfirmNum,(select count (1) from TestRun_SubInspectTermItem as t where t.SubInspectId=a.SubInspectId and t.SubcontractorIsPass=1) as PassConfirmNum,(select count (1) from TestRun_SubInspectTermItem as t where t.SubInspectId=a.SubInspectId and t.SubcontractorIsPass=0) as FailConfirmNum,a.AddUser,a.AddTime,a.IsUnifyWanderAbout,(case IsUnifyWanderAbout when 1 then '是' else '否' end) as IsUnifyWanderAboutName,a.SystemId from TestRun_SubInspectTerm as a inner join Base_Project as b on a.ProjectId=b.ProjectId where 1=1 and a.InspectionIsAllPass=1 and a.ProjectId='{this.CurrUser.LoginProjectId}' and a.Subcontractor='{this.CurrUser.UserId}' "; //承包商 - string contractorStr = $"select NEWID() as Id,a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.Subcontractor,a.Contractor,a.Supervision,a.Owner,2 as ConfirmType,'承包商' as ConfirmName,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.ContractorIsPass is null) as WaitConfirmNum,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.ContractorIsPass = 1) as PassConfirmNum,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.ContractorIsPass = 0) as FailConfirmNum,a.AddUser,a.AddTime,a.IsUnifyWanderAbout,(case IsUnifyWanderAbout when 1 then '是' else '否' end) as IsUnifyWanderAboutName,a.SystemId from TestRun_SubInspectTerm as a inner join Base_Project as b on a.ProjectId = b.ProjectId where 1 = 1 and a.InspectionIsAllPass = 1 and a.ProjectId = '{this.CurrUser.LoginProjectId}' and a.Contractor = '{this.CurrUser.UserId}' "; + string contractorStr = $"select NEWID() as Id,a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.Subcontractor,a.Contractor,a.Supervision,a.Owner,2 as ConfirmType,'承包商' as ConfirmName,(select count(1) from TestRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.ContractorIsPass is null) as WaitConfirmNum,(select count(1) from TestRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.ContractorIsPass = 1) as PassConfirmNum,(select count(1) from TestRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.ContractorIsPass = 0) as FailConfirmNum,a.AddUser,a.AddTime,a.IsUnifyWanderAbout,(case IsUnifyWanderAbout when 1 then '是' else '否' end) as IsUnifyWanderAboutName,a.SystemId from TestRun_SubInspectTerm as a inner join Base_Project as b on a.ProjectId = b.ProjectId where 1 = 1 and a.InspectionIsAllPass = 1 and a.ProjectId = '{this.CurrUser.LoginProjectId}' and a.Contractor = '{this.CurrUser.UserId}' "; //监理 - string supervisionStr = $"select NEWID() as Id,a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.Subcontractor,a.Contractor,a.Supervision,a.Owner,3 as ConfirmType,'监理' as ConfirmName,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.SupervisionIsPass is null) as WaitConfirmNum,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.SupervisionIsPass = 1) as PassConfirmNum,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.SupervisionIsPass = 0) as FailConfirmNum,a.AddUser,a.AddTime,a.IsUnifyWanderAbout,(case IsUnifyWanderAbout when 1 then '是' else '否' end) as IsUnifyWanderAboutName,a.SystemId from TestRun_SubInspectTerm as a inner join Base_Project as b on a.ProjectId = b.ProjectId where 1 = 1 and a.InspectionIsAllPass = 1 and a.InspectionIsAllPass = 1 and a.ProjectId = '{this.CurrUser.LoginProjectId}' and a.Supervision = '{this.CurrUser.UserId}' "; + string supervisionStr = $"select NEWID() as Id,a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.Subcontractor,a.Contractor,a.Supervision,a.Owner,3 as ConfirmType,'监理' as ConfirmName,(select count(1) from TestRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.SupervisionIsPass is null) as WaitConfirmNum,(select count(1) from TestRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.SupervisionIsPass = 1) as PassConfirmNum,(select count(1) from TestRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.SupervisionIsPass = 0) as FailConfirmNum,a.AddUser,a.AddTime,a.IsUnifyWanderAbout,(case IsUnifyWanderAbout when 1 then '是' else '否' end) as IsUnifyWanderAboutName,a.SystemId from TestRun_SubInspectTerm as a inner join Base_Project as b on a.ProjectId = b.ProjectId where 1 = 1 and a.InspectionIsAllPass = 1 and a.InspectionIsAllPass = 1 and a.ProjectId = '{this.CurrUser.LoginProjectId}' and a.Supervision = '{this.CurrUser.UserId}' "; //业主 - string ownerStr = $"select NEWID() as Id,a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.Subcontractor,a.Contractor,a.Supervision,a.Owner,4 as ConfirmType,'业主' as ConfirmName,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.OwnerIsPass is null) as WaitConfirmNum,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.OwnerIsPass = 1) as PassConfirmNum,(select count(1) from PreRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.OwnerIsPass = 0) as FailConfirmNum,a.AddUser,a.AddTime,a.IsUnifyWanderAbout,(case IsUnifyWanderAbout when 1 then '是' else '否' end) as IsUnifyWanderAboutName,a.SystemId from TestRun_SubInspectTerm as a inner join Base_Project as b on a.ProjectId = b.ProjectId where 1 = 1 and a.InspectionIsAllPass = 1 and a.InspectionIsAllPass = 1 and a.ProjectId = '{this.CurrUser.LoginProjectId}' and a.Owner = '{this.CurrUser.UserId}' "; + string ownerStr = $"select NEWID() as Id,a.SubInspectId,a.ProjectId,b.ProjectName,b.ProjectCode,a.Subcontractor,a.Contractor,a.Supervision,a.Owner,4 as ConfirmType,'业主' as ConfirmName,(select count(1) from TestRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.OwnerIsPass is null) as WaitConfirmNum,(select count(1) from TestRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.OwnerIsPass = 1) as PassConfirmNum,(select count(1) from TestRun_SubInspectTermItem as t where t.SubInspectId = a.SubInspectId and t.OwnerIsPass = 0) as FailConfirmNum,a.AddUser,a.AddTime,a.IsUnifyWanderAbout,(case IsUnifyWanderAbout when 1 then '是' else '否' end) as IsUnifyWanderAboutName,a.SystemId from TestRun_SubInspectTerm as a inner join Base_Project as b on a.ProjectId = b.ProjectId where 1 = 1 and a.InspectionIsAllPass = 1 and a.InspectionIsAllPass = 1 and a.ProjectId = '{this.CurrUser.LoginProjectId}' and a.Owner = '{this.CurrUser.UserId}' "; if (this.tvControlItem.SelectedNodeID.Split('|').Length > 0) { diff --git a/SGGL/FineUIPro.Web/Web.config b/SGGL/FineUIPro.Web/Web.config index 6605fbff..aae34665 100644 --- a/SGGL/FineUIPro.Web/Web.config +++ b/SGGL/FineUIPro.Web/Web.config @@ -12,7 +12,7 @@ - + @@ -77,7 +77,7 @@ - + diff --git a/SGGL/FineUIPro.Web/ZHGL/TestRunPerformance/TestRunMonthSummaryReport.aspx b/SGGL/FineUIPro.Web/ZHGL/TestRunPerformance/TestRunMonthSummaryReport.aspx index 1d4d2f7a..8bea4504 100644 --- a/SGGL/FineUIPro.Web/ZHGL/TestRunPerformance/TestRunMonthSummaryReport.aspx +++ b/SGGL/FineUIPro.Web/ZHGL/TestRunPerformance/TestRunMonthSummaryReport.aspx @@ -14,7 +14,7 @@ ShowHeader="false" Layout="VBox" BoxConfigAlign="Stretch"> diff --git a/SGGL/FineUIPro.Web/ZHGL/TestRunPerformance/TestRunMonthSummaryReport.aspx.cs b/SGGL/FineUIPro.Web/ZHGL/TestRunPerformance/TestRunMonthSummaryReport.aspx.cs index 724cb5e8..2d1d502d 100644 --- a/SGGL/FineUIPro.Web/ZHGL/TestRunPerformance/TestRunMonthSummaryReport.aspx.cs +++ b/SGGL/FineUIPro.Web/ZHGL/TestRunPerformance/TestRunMonthSummaryReport.aspx.cs @@ -9,9 +9,195 @@ namespace FineUIPro.Web.ZHGL.TestRunPerformance { public partial class TestRunMonthSummaryReport : PageBase { + /// + /// 加载页面 + /// + /// + /// protected void Page_Load(object sender, EventArgs e) { + if (!IsPostBack) + { + Funs.DropDownPageSize(this.ddlPageSize); + if (this.CurrUser != null && this.CurrUser.PageSize.HasValue) + { + Grid1.PageSize = this.CurrUser.PageSize.Value; + } + this.ddlPageSize.SelectedValue = Grid1.PageSize.ToString(); + // 绑定表格 + this.BindGrid(); + ////权限按钮方法 + this.GetButtonPower(); + } + } + /// + /// 绑定数据 + /// + private void BindGrid() + { + string strSql = @"SELECT performance.TestRunMonthSummaryReportId,performance.Year,performance.UserId,performance.CompileDate,Users.UserName " + + @" From dbo.ZHGL_TestRunMonthSummaryReport AS performance" + + @" LEFT JOIN Sys_User AS Users ON Users.UserId=performance.UserId" + + @" WHERE 1=1"; + List listStr = new List(); + if (this.CurrUser.UserId != BLL.Const.sysglyId && this.CurrUser.UserId != BLL.Const.hfnbdId) + { + strSql += " AND performance.UserId = @UserId"; + listStr.Add(new SqlParameter("@UserId", this.CurrUser.UserId)); + } + if (!string.IsNullOrEmpty(this.txtUserName.Text.Trim())) + { + strSql += " AND UserName LIKE @UserName"; + listStr.Add(new SqlParameter("@UserName", "%" + this.txtUserName.Text.Trim() + "%")); + } + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); + Grid1.RecordCount = tb.Rows.Count; + var table = this.GetPagedDataTable(Grid1, tb); + Grid1.DataSource = table; + Grid1.DataBind(); + } + + + #region 分页 + /// + /// 分页 + /// + /// + /// + protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) + { + BindGrid(); + } + + /// + /// 分页显示条数下拉框 + /// + /// + /// + protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) + { + Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); + BindGrid(); + } + + /// + /// 排序 + /// + /// + /// + protected void Grid1_Sort(object sender, FineUIPro.GridSortEventArgs e) + { + BindGrid(); + } + + #endregion + + #region 删除数据 + /// + /// 批量删除数据 + /// + /// + /// + protected void btnMenuDelete_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length > 0) + { + foreach (int rowIndex in Grid1.SelectedRowIndexArray) + { + string rowID = Grid1.DataKeys[rowIndex][0].ToString(); + var performance = TestRunMonthSummaryReportService.GetTestRunMonthSummaryReportById(rowID); + if (performance != null) + { + BLL.TestRunMonthSummaryReportService.DeleteTestRunMonthSummaryReportById(rowID); + } + } + BindGrid(); + ShowNotify("删除数据成功!", MessageBoxIcon.Success); + } + else + { + ShowNotify("请至少选中一行!", MessageBoxIcon.Warning); + } + } + #endregion + + protected void btnNew_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TestRunMonthSummaryReportEdit.aspx", "编辑 - "))); + } + + #region 编辑 + /// + /// 编辑 + /// + /// + /// + protected void btnMenuEdit_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInParent("请至少选择一条记录!", MessageBoxIcon.Warning); + return; + } + string Id = Grid1.SelectedRowID; + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TestRunMonthSummaryReportEdit.aspx?TestRunMonthSummaryReportId={0}", Id, "编辑 - "))); + } + + /// + /// Grid行双击事件 + /// + /// + /// + protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) + { + btnMenuEdit_Click(null, null); + } + #endregion + + #region 查询 + /// + /// 查询 + /// + /// + /// + protected void TextBox_TextChanged(object sender, EventArgs e) + { + this.BindGrid(); + } + #endregion + + #region 获取按钮权限 + /// + /// 获取按钮权限 + /// + /// + /// + private void GetButtonPower() + { + var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.TestRunMonthSummaryReportMenuId); + if (buttonList.Count() > 0) + { + if (buttonList.Contains(BLL.Const.BtnAdd)) + { + this.btnNew.Hidden = false; + } + if (buttonList.Contains(BLL.Const.BtnModify)) + { + this.btnMenuEdit.Hidden = false; + } + if (buttonList.Contains(BLL.Const.BtnDelete)) + { + this.btnMenuDelete.Hidden = false; + } + } + } + #endregion + + protected void Window1_Close(object sender, EventArgs e) + { + BindGrid(); } } } \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/ZHGL/TestRunPerformance/TestRunMonthSummaryReportEdit.aspx b/SGGL/FineUIPro.Web/ZHGL/TestRunPerformance/TestRunMonthSummaryReportEdit.aspx new file mode 100644 index 00000000..298e9209 --- /dev/null +++ b/SGGL/FineUIPro.Web/ZHGL/TestRunPerformance/TestRunMonthSummaryReportEdit.aspx @@ -0,0 +1,65 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestRunMonthSummaryReportEdit.aspx.cs" Inherits="FineUIPro.Web.ZHGL.TestRunPerformance.TestRunMonthSummaryReportEdit" %> + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/ZHGL/TestRunPerformance/TestRunMonthSummaryReportEdit.aspx.cs b/SGGL/FineUIPro.Web/ZHGL/TestRunPerformance/TestRunMonthSummaryReportEdit.aspx.cs new file mode 100644 index 00000000..b6c36245 --- /dev/null +++ b/SGGL/FineUIPro.Web/ZHGL/TestRunPerformance/TestRunMonthSummaryReportEdit.aspx.cs @@ -0,0 +1,246 @@ +using BLL; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.ZHGL.TestRunPerformance +{ + public partial class TestRunMonthSummaryReportEdit : PageBase + { + #region 加载 + /// + /// 加载页面 + /// + /// + /// + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + string Id = Request.Params["TestRunMonthSummaryReportId"]; + Model.SGGLDB db = Funs.DB; + var userIds = (from x in db.Person_TestRunMonthSummary select x.UserId).Distinct().ToList(); + var users = from x in db.Sys_User where userIds.Contains(x.UserId) select x; + this.drpUser.DataTextField = "UserName"; + this.drpUser.DataValueField = "UserId"; + this.drpUser.DataSource = users; + this.drpUser.DataBind(); + Funs.FineUIPleaseSelect(this.drpUser); + this.drpUser.SelectedValue = this.CurrUser.UserId; + Model.ZHGL_TestRunMonthSummaryReport report = BLL.TestRunMonthSummaryReportService.GetTestRunMonthSummaryReportById(Id); + if (report != null) + { + if (!string.IsNullOrEmpty(report.UserId)) + { + this.drpUser.SelectedValue = report.UserId; + } + if (report.Year != null) + { + this.txtYear.Text = report.Year.ToString(); + } + if (this.drpUser.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.txtYear.Text.Trim())) + { + BindGrid(); + } + } + } + } + #endregion + + private void BindGrid() + { + Model.SGGLDB db = Funs.DB; + DateTime startDate = Convert.ToDateTime(this.txtYear.Text + "-01" + "-01"); + DateTime endDate = startDate.AddYears(1); + var projects = from x in db.Base_Project select x; + var getTestRunMonthSummarys = (from x in db.Person_TestRunMonthSummary + join y in db.Sys_User on x.UserId equals y.UserId + where x.UserId == this.drpUser.SelectedValue && x.RaiseDate >= startDate && x.RaiseDate < endDate + orderby x.ProjectId + select new { x.TestRunMonthSummaryId, x.ProjectId, x.UserId, y.UserName, x.ProcessName, x.RaiseDate, x.ProblemDescription, x.HandleMethod, x.ExperienceOrSuggestion }).ToList(); + if (getTestRunMonthSummarys.Count() > 0) + { + DataTable table = new DataTable(); + DateTime startMonth; + List months = new List(); + startMonth = startDate; + do + { + months.Add(startMonth); + startMonth = startMonth.AddMonths(1); + } while (startMonth < endDate); + + table.Columns.Add(new DataColumn("Id", typeof(String))); + table.Columns.Add(new DataColumn("Code", typeof(String))); + table.Columns.Add(new DataColumn("ProjectName", typeof(String))); + table.Columns.Add(new DataColumn("ProcessName", typeof(String))); + table.Columns.Add(new DataColumn("RaiseDate", typeof(String))); + table.Columns.Add(new DataColumn("ProblemDescription", typeof(String))); + table.Columns.Add(new DataColumn("HandleMethod", typeof(String))); + table.Columns.Add(new DataColumn("ExperienceOrSuggestion", typeof(String))); + DataRow row; + int a = 1; + for (int i = 0; i < months.Count; i++) + { + row = table.NewRow(); + row["Id"] = i; + row["Code"] = GetNum(i + 1); + row["ProjectName"] = months[i].Year + "年" + months[i].Month + "月份开车技术总结"; + DateTime monthEndDate = months[i].AddMonths(1); + var monthList = getTestRunMonthSummarys.Where(x => x.RaiseDate >= months[i] && x.RaiseDate < monthEndDate).OrderBy(x => x.RaiseDate); + table.Rows.Add(row); + a = 1; + string projectName = string.Empty; + foreach (var item in monthList) + { + row = table.NewRow(); + row["Id"] = SQLHelper.GetNewID(); + var project = projects.FirstOrDefault(x => x.ProjectId == item.ProjectId); + if (project != null) + { + if (string.IsNullOrEmpty(projectName) || projectName != project.ProjectName) + { + row["ProjectName"] = project.ProjectName; + projectName = row["ProjectName"].ToString(); + } + } + else + { + if (string.IsNullOrEmpty(projectName) || projectName != "本部") + { + row["ProjectName"] = "本部"; + projectName = row["ProjectName"].ToString(); + } + } + row["ProcessName"] = item.ProcessName; + row["RaiseDate"] = item.RaiseDate; + row["ProblemDescription"] = item.ProblemDescription; + row["HandleMethod"] = item.HandleMethod; + row["ExperienceOrSuggestion"] = item.ExperienceOrSuggestion; + table.Rows.Add(row); + a++; + } + } + //rows = rows.Substring(0, rows.Length - 1); + this.Grid1.DataSource = table; + this.Grid1.DataBind(); + } + } + + private string GetNum(int i) + { + string num = string.Empty; + if (i == 1) + { + num = "一"; + } + else if (i == 2) + { + num = "二"; + } + else if (i == 3) + { + num = "三"; + } + else if (i == 4) + { + num = "四"; + } + else if (i == 5) + { + num = "五"; + } + else if (i == 6) + { + num = "六"; + } + else if (i == 7) + { + num = "七"; + } + else if (i == 8) + { + num = "八"; + } + else if (i == 9) + { + num = "九"; + } + else if (i == 10) + { + num = "十"; + } + else if (i == 11) + { + num = "十一"; + } + else if (i == 12) + { + num = "十二"; + } + return num; + } + + #region 保存 + /// + /// 保存按钮 + /// + /// + /// + protected void btnSave_Click(object sender, EventArgs e) + { + if (this.drpUser.SelectedValue == BLL.Const._Null) + { + Alert.ShowInTop("请选择开车人员!", MessageBoxIcon.Warning); + return; + } + if (string.IsNullOrEmpty(this.txtYear.Text.Trim())) + { + Alert.ShowInTop("请选择年份!", MessageBoxIcon.Warning); + return; + } + Save(); + ShowNotify("保存成功!", MessageBoxIcon.Success); + PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + } + + private void Save() + { + string TestRunMonthSummaryReportId = Request.Params["TestRunMonthSummaryReportId"]; + Model.ZHGL_TestRunMonthSummaryReport newItem = new Model.ZHGL_TestRunMonthSummaryReport(); + newItem.Year = Funs.GetNewInt(this.txtYear.Text.Trim()); + newItem.UserId = this.drpUser.SelectedValue; + newItem.CompileMan = this.CurrUser.UserId; + newItem.CompileDate = DateTime.Now; + if (string.IsNullOrEmpty(TestRunMonthSummaryReportId)) + { + newItem.TestRunMonthSummaryReportId = SQLHelper.GetNewID(); + BLL.TestRunMonthSummaryReportService.AddTestRunMonthSummaryReport(newItem); + BLL.LogService.AddSys_Log(this.CurrUser, newItem.Year.ToString(), newItem.TestRunMonthSummaryReportId, BLL.Const.TestRunMonthSummaryReportMenuId, "增加开车月技术总结!"); + } + else + { + newItem.TestRunMonthSummaryReportId = TestRunMonthSummaryReportId; + BLL.TestRunMonthSummaryReportService.UpdateTestRunMonthSummaryReport(newItem); + BLL.LogService.AddSys_Log(this.CurrUser, newItem.Year.ToString(), newItem.TestRunMonthSummaryReportId, BLL.Const.TestRunMonthSummaryReportMenuId, "修改开车月技术总结!"); + } + } + #endregion + + protected void drpUser_SelectedIndexChanged(object sender, EventArgs e) + { + if (this.drpUser.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.txtYear.Text.Trim())) + { + BindGrid(); + } + else + { + this.Grid1.DataSource = null; + this.Grid1.DataBind(); + } + } + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/ZHGL/TestRunPerformance/TestRunMonthSummaryReportEdit.aspx.designer.cs b/SGGL/FineUIPro.Web/ZHGL/TestRunPerformance/TestRunMonthSummaryReportEdit.aspx.designer.cs new file mode 100644 index 00000000..4463b00d --- /dev/null +++ b/SGGL/FineUIPro.Web/ZHGL/TestRunPerformance/TestRunMonthSummaryReportEdit.aspx.designer.cs @@ -0,0 +1,96 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.ZHGL.TestRunPerformance { + + + public partial class TestRunMonthSummaryReportEdit { + + /// + /// 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; + + /// + /// Toolbar2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar2; + + /// + /// drpUser 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList drpUser; + + /// + /// txtYear 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtYear; + + /// + /// hdId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox hdId; + + /// + /// btnSave 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSave; + } +} diff --git a/SGGL/FineUIPro.Web/ZHGL/TestRunPerformance/TestRunPerformanceMonthReportEdit.aspx.cs b/SGGL/FineUIPro.Web/ZHGL/TestRunPerformance/TestRunPerformanceMonthReportEdit.aspx.cs index f2b80e43..d6c1e32d 100644 --- a/SGGL/FineUIPro.Web/ZHGL/TestRunPerformance/TestRunPerformanceMonthReportEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/ZHGL/TestRunPerformance/TestRunPerformanceMonthReportEdit.aspx.cs @@ -66,16 +66,6 @@ namespace FineUIPro.Web.ZHGL.TestRunPerformance IQueryable getTrips = from x in db.Person_BusinessTrip where x.UserId == this.drpUser.SelectedValue && x.LeaveDate >= startDate && x.ArriveDate < endDate select x; - IQueryable getParentDetails = from x in db.View_WBS_CostControlParentDetail select x; - IQueryable getWbsSets = from x in db.Wbs_WbsSet select x; - IQueryable getWbsSetInits = from x in db.WBS_WbsSetInit select x; - IQueryable getUnitProjects = from x in db.Wbs_UnitProject select x; - IQueryable getUnitProjectInits = from x in db.Wbs_UnitProjectInit select x; - IQueryable getCnProfessions = from x in db.WBS_CnProfession select x; - IQueryable getCnProfessionInits = from x in db.WBS_CnProfessionInit select x; - IQueryable getInstallations = from x in db.Project_Installation select x; - IQueryable getCostControlDetailStatisticss = from x in db.View_WBS_CostControlDetailStatistics select x; - List CostControlDetailStatisticsList = new List(); if (getTestRunPerformances.Count() > 0) { DataTable table = new DataTable(); @@ -545,13 +535,13 @@ namespace FineUIPro.Web.ZHGL.TestRunPerformance { newItem.TestRunPerformanceMonthReportId = SQLHelper.GetNewID(); BLL.TestRunPerformanceMonthReportService.AddTestRunPerformanceMonthReport(newItem); - BLL.LogService.AddSys_Log(this.CurrUser, newItem.Year.ToString(), newItem.TestRunPerformanceMonthReportId, BLL.Const.ControlItemInitSetMenuId, "增加试车绩效报告!"); + BLL.LogService.AddSys_Log(this.CurrUser, newItem.Year.ToString(), newItem.TestRunPerformanceMonthReportId, BLL.Const.TestRunPerformanceMonthReportMenuId, "增加试车绩效报告!"); } else { newItem.TestRunPerformanceMonthReportId = TestRunPerformanceMonthReportId; BLL.TestRunPerformanceMonthReportService.UpdateTestRunPerformanceMonthReport(newItem); - BLL.LogService.AddSys_Log(this.CurrUser, newItem.Year.ToString(), newItem.TestRunPerformanceMonthReportId, BLL.Const.ControlItemInitSetMenuId, "修改试车绩效报告!"); + BLL.LogService.AddSys_Log(this.CurrUser, newItem.Year.ToString(), newItem.TestRunPerformanceMonthReportId, BLL.Const.TestRunPerformanceMonthReportMenuId, "修改试车绩效报告!"); } } #endregion diff --git a/SGGL/FineUIPro.Web/common/Menu_TestRun.xml b/SGGL/FineUIPro.Web/common/Menu_TestRun.xml index ecabe79c..5f525364 100644 --- a/SGGL/FineUIPro.Web/common/Menu_TestRun.xml +++ b/SGGL/FineUIPro.Web/common/Menu_TestRun.xml @@ -82,7 +82,15 @@ - + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/common/Menu_ZHGL.xml b/SGGL/FineUIPro.Web/common/Menu_ZHGL.xml index 533bee11..69859890 100644 --- a/SGGL/FineUIPro.Web/common/Menu_ZHGL.xml +++ b/SGGL/FineUIPro.Web/common/Menu_ZHGL.xml @@ -85,5 +85,6 @@ + \ No newline at end of file diff --git a/SGGL/Model/Model.cs b/SGGL/Model/Model.cs index 60a6da57..b6c06c88 100644 --- a/SGGL/Model/Model.cs +++ b/SGGL/Model/Model.cs @@ -914,6 +914,21 @@ namespace Model partial void InsertExchange_Content(Exchange_Content instance); partial void UpdateExchange_Content(Exchange_Content instance); partial void DeleteExchange_Content(Exchange_Content instance); + partial void InsertFeedingRun_InspectTailTerm(FeedingRun_InspectTailTerm instance); + partial void UpdateFeedingRun_InspectTailTerm(FeedingRun_InspectTailTerm instance); + partial void DeleteFeedingRun_InspectTailTerm(FeedingRun_InspectTailTerm instance); + partial void InsertFeedingRun_InspectTermApproveRecords(FeedingRun_InspectTermApproveRecords instance); + partial void UpdateFeedingRun_InspectTermApproveRecords(FeedingRun_InspectTermApproveRecords instance); + partial void DeleteFeedingRun_InspectTermApproveRecords(FeedingRun_InspectTermApproveRecords instance); + partial void InsertFeedingRun_SubInspectTerm(FeedingRun_SubInspectTerm instance); + partial void UpdateFeedingRun_SubInspectTerm(FeedingRun_SubInspectTerm instance); + partial void DeleteFeedingRun_SubInspectTerm(FeedingRun_SubInspectTerm instance); + partial void InsertFeedingRun_SubInspectTermItem(FeedingRun_SubInspectTermItem instance); + partial void UpdateFeedingRun_SubInspectTermItem(FeedingRun_SubInspectTermItem instance); + partial void DeleteFeedingRun_SubInspectTermItem(FeedingRun_SubInspectTermItem instance); + partial void InsertFeedingRun_WorkInspectTemplate(FeedingRun_WorkInspectTemplate instance); + partial void UpdateFeedingRun_WorkInspectTemplate(FeedingRun_WorkInspectTemplate instance); + partial void DeleteFeedingRun_WorkInspectTemplate(FeedingRun_WorkInspectTemplate instance); partial void InsertFinalFileManage_FinalFileList(FinalFileManage_FinalFileList instance); partial void UpdateFinalFileManage_FinalFileList(FinalFileManage_FinalFileList instance); partial void DeleteFinalFileManage_FinalFileList(FinalFileManage_FinalFileList instance); @@ -4989,6 +5004,46 @@ namespace Model } } + public System.Data.Linq.Table FeedingRun_InspectTailTerm + { + get + { + return this.GetTable(); + } + } + + public System.Data.Linq.Table FeedingRun_InspectTermApproveRecords + { + get + { + return this.GetTable(); + } + } + + public System.Data.Linq.Table FeedingRun_SubInspectTerm + { + get + { + return this.GetTable(); + } + } + + public System.Data.Linq.Table FeedingRun_SubInspectTermItem + { + get + { + return this.GetTable(); + } + } + + public System.Data.Linq.Table FeedingRun_WorkInspectTemplate + { + get + { + return this.GetTable(); + } + } + public System.Data.Linq.Table FinalFileManage_FinalFileList { get @@ -145145,6 +145200,2140 @@ namespace Model } } + [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.FeedingRun_InspectTailTerm")] + public partial class FeedingRun_InspectTailTerm : INotifyPropertyChanging, INotifyPropertyChanged + { + + private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); + + private string _TailTermId; + + private string _ProjectId; + + private string _ProjectName; + + private string _TailTermCode; + + private string _ConstructionUnit; + + private string _SubInspectId; + + private string _TermItemId; + + private string _QuestionDesc; + + private string _RectifyOpinion; + + private System.Nullable _RectifyTime; + + private string _InspectUser; + + private string _HandleUser; + + private string _ApproveUser; + + private System.Nullable _AdjustCompleteTime; + + private System.Nullable _ApproveState; + + private string _AddUser; + + private System.Nullable _AddTime; + + #region 可扩展性方法定义 + partial void OnLoaded(); + partial void OnValidate(System.Data.Linq.ChangeAction action); + partial void OnCreated(); + partial void OnTailTermIdChanging(string value); + partial void OnTailTermIdChanged(); + partial void OnProjectIdChanging(string value); + partial void OnProjectIdChanged(); + partial void OnProjectNameChanging(string value); + partial void OnProjectNameChanged(); + partial void OnTailTermCodeChanging(string value); + partial void OnTailTermCodeChanged(); + partial void OnConstructionUnitChanging(string value); + partial void OnConstructionUnitChanged(); + partial void OnSubInspectIdChanging(string value); + partial void OnSubInspectIdChanged(); + partial void OnTermItemIdChanging(string value); + partial void OnTermItemIdChanged(); + partial void OnQuestionDescChanging(string value); + partial void OnQuestionDescChanged(); + partial void OnRectifyOpinionChanging(string value); + partial void OnRectifyOpinionChanged(); + partial void OnRectifyTimeChanging(System.Nullable value); + partial void OnRectifyTimeChanged(); + partial void OnInspectUserChanging(string value); + partial void OnInspectUserChanged(); + partial void OnHandleUserChanging(string value); + partial void OnHandleUserChanged(); + partial void OnApproveUserChanging(string value); + partial void OnApproveUserChanged(); + partial void OnAdjustCompleteTimeChanging(System.Nullable value); + partial void OnAdjustCompleteTimeChanged(); + partial void OnApproveStateChanging(System.Nullable value); + partial void OnApproveStateChanged(); + partial void OnAddUserChanging(string value); + partial void OnAddUserChanged(); + partial void OnAddTimeChanging(System.Nullable value); + partial void OnAddTimeChanged(); + #endregion + + public FeedingRun_InspectTailTerm() + { + OnCreated(); + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TailTermId", DbType="VarChar(50) NOT NULL", CanBeNull=false, IsPrimaryKey=true)] + public string TailTermId + { + get + { + return this._TailTermId; + } + set + { + if ((this._TailTermId != value)) + { + this.OnTailTermIdChanging(value); + this.SendPropertyChanging(); + this._TailTermId = value; + this.SendPropertyChanged("TailTermId"); + this.OnTailTermIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectId", DbType="VarChar(50)")] + public string ProjectId + { + get + { + return this._ProjectId; + } + set + { + if ((this._ProjectId != value)) + { + this.OnProjectIdChanging(value); + this.SendPropertyChanging(); + this._ProjectId = value; + this.SendPropertyChanged("ProjectId"); + this.OnProjectIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectName", DbType="VarChar(50)")] + public string ProjectName + { + get + { + return this._ProjectName; + } + set + { + if ((this._ProjectName != value)) + { + this.OnProjectNameChanging(value); + this.SendPropertyChanging(); + this._ProjectName = value; + this.SendPropertyChanged("ProjectName"); + this.OnProjectNameChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TailTermCode", DbType="VarChar(50)")] + public string TailTermCode + { + get + { + return this._TailTermCode; + } + set + { + if ((this._TailTermCode != value)) + { + this.OnTailTermCodeChanging(value); + this.SendPropertyChanging(); + this._TailTermCode = value; + this.SendPropertyChanged("TailTermCode"); + this.OnTailTermCodeChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ConstructionUnit", DbType="VarChar(50)")] + public string ConstructionUnit + { + get + { + return this._ConstructionUnit; + } + set + { + if ((this._ConstructionUnit != value)) + { + this.OnConstructionUnitChanging(value); + this.SendPropertyChanging(); + this._ConstructionUnit = value; + this.SendPropertyChanged("ConstructionUnit"); + this.OnConstructionUnitChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SubInspectId", DbType="VarChar(50)")] + public string SubInspectId + { + get + { + return this._SubInspectId; + } + set + { + if ((this._SubInspectId != value)) + { + this.OnSubInspectIdChanging(value); + this.SendPropertyChanging(); + this._SubInspectId = value; + this.SendPropertyChanged("SubInspectId"); + this.OnSubInspectIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TermItemId", DbType="VarChar(50)")] + public string TermItemId + { + get + { + return this._TermItemId; + } + set + { + if ((this._TermItemId != value)) + { + this.OnTermItemIdChanging(value); + this.SendPropertyChanging(); + this._TermItemId = value; + this.SendPropertyChanged("TermItemId"); + this.OnTermItemIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_QuestionDesc", DbType="VarChar(MAX)", UpdateCheck=UpdateCheck.Never)] + public string QuestionDesc + { + get + { + return this._QuestionDesc; + } + set + { + if ((this._QuestionDesc != value)) + { + this.OnQuestionDescChanging(value); + this.SendPropertyChanging(); + this._QuestionDesc = value; + this.SendPropertyChanged("QuestionDesc"); + this.OnQuestionDescChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RectifyOpinion", DbType="VarChar(MAX)", UpdateCheck=UpdateCheck.Never)] + public string RectifyOpinion + { + get + { + return this._RectifyOpinion; + } + set + { + if ((this._RectifyOpinion != value)) + { + this.OnRectifyOpinionChanging(value); + this.SendPropertyChanging(); + this._RectifyOpinion = value; + this.SendPropertyChanged("RectifyOpinion"); + this.OnRectifyOpinionChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RectifyTime", DbType="DateTime")] + public System.Nullable RectifyTime + { + get + { + return this._RectifyTime; + } + set + { + if ((this._RectifyTime != value)) + { + this.OnRectifyTimeChanging(value); + this.SendPropertyChanging(); + this._RectifyTime = value; + this.SendPropertyChanged("RectifyTime"); + this.OnRectifyTimeChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_InspectUser", DbType="VarChar(50)")] + public string InspectUser + { + get + { + return this._InspectUser; + } + set + { + if ((this._InspectUser != value)) + { + this.OnInspectUserChanging(value); + this.SendPropertyChanging(); + this._InspectUser = value; + this.SendPropertyChanged("InspectUser"); + this.OnInspectUserChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_HandleUser", DbType="VarChar(50)")] + public string HandleUser + { + get + { + return this._HandleUser; + } + set + { + if ((this._HandleUser != value)) + { + this.OnHandleUserChanging(value); + this.SendPropertyChanging(); + this._HandleUser = value; + this.SendPropertyChanged("HandleUser"); + this.OnHandleUserChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ApproveUser", DbType="VarChar(50)")] + public string ApproveUser + { + get + { + return this._ApproveUser; + } + set + { + if ((this._ApproveUser != value)) + { + this.OnApproveUserChanging(value); + this.SendPropertyChanging(); + this._ApproveUser = value; + this.SendPropertyChanged("ApproveUser"); + this.OnApproveUserChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AdjustCompleteTime", DbType="DateTime")] + public System.Nullable AdjustCompleteTime + { + get + { + return this._AdjustCompleteTime; + } + set + { + if ((this._AdjustCompleteTime != value)) + { + this.OnAdjustCompleteTimeChanging(value); + this.SendPropertyChanging(); + this._AdjustCompleteTime = value; + this.SendPropertyChanged("AdjustCompleteTime"); + this.OnAdjustCompleteTimeChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ApproveState", DbType="Int")] + public System.Nullable ApproveState + { + get + { + return this._ApproveState; + } + set + { + if ((this._ApproveState != value)) + { + this.OnApproveStateChanging(value); + this.SendPropertyChanging(); + this._ApproveState = value; + this.SendPropertyChanged("ApproveState"); + this.OnApproveStateChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AddUser", DbType="VarChar(50)")] + public string AddUser + { + get + { + return this._AddUser; + } + set + { + if ((this._AddUser != value)) + { + this.OnAddUserChanging(value); + this.SendPropertyChanging(); + this._AddUser = value; + this.SendPropertyChanged("AddUser"); + this.OnAddUserChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AddTime", DbType="DateTime")] + public System.Nullable AddTime + { + get + { + return this._AddTime; + } + set + { + if ((this._AddTime != value)) + { + this.OnAddTimeChanging(value); + this.SendPropertyChanging(); + this._AddTime = value; + this.SendPropertyChanged("AddTime"); + this.OnAddTimeChanged(); + } + } + } + + public event PropertyChangingEventHandler PropertyChanging; + + public event PropertyChangedEventHandler PropertyChanged; + + protected virtual void SendPropertyChanging() + { + if ((this.PropertyChanging != null)) + { + this.PropertyChanging(this, emptyChangingEventArgs); + } + } + + protected virtual void SendPropertyChanged(String propertyName) + { + if ((this.PropertyChanged != null)) + { + this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); + } + } + } + + [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.FeedingRun_InspectTermApproveRecords")] + public partial class FeedingRun_InspectTermApproveRecords : INotifyPropertyChanging, INotifyPropertyChanged + { + + private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); + + private string _InspectTermId; + + private string _ProjectId; + + private string _TermItemId; + + private string _TailTermId; + + private string _ApproveOpinion; + + private System.Nullable _ApproveTime; + + private string _ApproveUser; + + private System.Nullable _ApproveType; + + private System.Nullable _ApproveState; + + private string _AddUser; + + private System.Nullable _AddTime; + + #region 可扩展性方法定义 + partial void OnLoaded(); + partial void OnValidate(System.Data.Linq.ChangeAction action); + partial void OnCreated(); + partial void OnInspectTermIdChanging(string value); + partial void OnInspectTermIdChanged(); + partial void OnProjectIdChanging(string value); + partial void OnProjectIdChanged(); + partial void OnTermItemIdChanging(string value); + partial void OnTermItemIdChanged(); + partial void OnTailTermIdChanging(string value); + partial void OnTailTermIdChanged(); + partial void OnApproveOpinionChanging(string value); + partial void OnApproveOpinionChanged(); + partial void OnApproveTimeChanging(System.Nullable value); + partial void OnApproveTimeChanged(); + partial void OnApproveUserChanging(string value); + partial void OnApproveUserChanged(); + partial void OnApproveTypeChanging(System.Nullable value); + partial void OnApproveTypeChanged(); + partial void OnApproveStateChanging(System.Nullable value); + partial void OnApproveStateChanged(); + partial void OnAddUserChanging(string value); + partial void OnAddUserChanged(); + partial void OnAddTimeChanging(System.Nullable value); + partial void OnAddTimeChanged(); + #endregion + + public FeedingRun_InspectTermApproveRecords() + { + OnCreated(); + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_InspectTermId", DbType="VarChar(50) NOT NULL", CanBeNull=false, IsPrimaryKey=true)] + public string InspectTermId + { + get + { + return this._InspectTermId; + } + set + { + if ((this._InspectTermId != value)) + { + this.OnInspectTermIdChanging(value); + this.SendPropertyChanging(); + this._InspectTermId = value; + this.SendPropertyChanged("InspectTermId"); + this.OnInspectTermIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectId", DbType="VarChar(50)")] + public string ProjectId + { + get + { + return this._ProjectId; + } + set + { + if ((this._ProjectId != value)) + { + this.OnProjectIdChanging(value); + this.SendPropertyChanging(); + this._ProjectId = value; + this.SendPropertyChanged("ProjectId"); + this.OnProjectIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TermItemId", DbType="VarChar(50)")] + public string TermItemId + { + get + { + return this._TermItemId; + } + set + { + if ((this._TermItemId != value)) + { + this.OnTermItemIdChanging(value); + this.SendPropertyChanging(); + this._TermItemId = value; + this.SendPropertyChanged("TermItemId"); + this.OnTermItemIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TailTermId", DbType="VarChar(50)")] + public string TailTermId + { + get + { + return this._TailTermId; + } + set + { + if ((this._TailTermId != value)) + { + this.OnTailTermIdChanging(value); + this.SendPropertyChanging(); + this._TailTermId = value; + this.SendPropertyChanged("TailTermId"); + this.OnTailTermIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ApproveOpinion", DbType="VarChar(MAX)", UpdateCheck=UpdateCheck.Never)] + public string ApproveOpinion + { + get + { + return this._ApproveOpinion; + } + set + { + if ((this._ApproveOpinion != value)) + { + this.OnApproveOpinionChanging(value); + this.SendPropertyChanging(); + this._ApproveOpinion = value; + this.SendPropertyChanged("ApproveOpinion"); + this.OnApproveOpinionChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ApproveTime", DbType="DateTime")] + public System.Nullable ApproveTime + { + get + { + return this._ApproveTime; + } + set + { + if ((this._ApproveTime != value)) + { + this.OnApproveTimeChanging(value); + this.SendPropertyChanging(); + this._ApproveTime = value; + this.SendPropertyChanged("ApproveTime"); + this.OnApproveTimeChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ApproveUser", DbType="VarChar(50)")] + public string ApproveUser + { + get + { + return this._ApproveUser; + } + set + { + if ((this._ApproveUser != value)) + { + this.OnApproveUserChanging(value); + this.SendPropertyChanging(); + this._ApproveUser = value; + this.SendPropertyChanged("ApproveUser"); + this.OnApproveUserChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ApproveType", DbType="Int")] + public System.Nullable ApproveType + { + get + { + return this._ApproveType; + } + set + { + if ((this._ApproveType != value)) + { + this.OnApproveTypeChanging(value); + this.SendPropertyChanging(); + this._ApproveType = value; + this.SendPropertyChanged("ApproveType"); + this.OnApproveTypeChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ApproveState", DbType="Int")] + public System.Nullable ApproveState + { + get + { + return this._ApproveState; + } + set + { + if ((this._ApproveState != value)) + { + this.OnApproveStateChanging(value); + this.SendPropertyChanging(); + this._ApproveState = value; + this.SendPropertyChanged("ApproveState"); + this.OnApproveStateChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AddUser", DbType="VarChar(50)")] + public string AddUser + { + get + { + return this._AddUser; + } + set + { + if ((this._AddUser != value)) + { + this.OnAddUserChanging(value); + this.SendPropertyChanging(); + this._AddUser = value; + this.SendPropertyChanged("AddUser"); + this.OnAddUserChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AddTime", DbType="DateTime")] + public System.Nullable AddTime + { + get + { + return this._AddTime; + } + set + { + if ((this._AddTime != value)) + { + this.OnAddTimeChanging(value); + this.SendPropertyChanging(); + this._AddTime = value; + this.SendPropertyChanged("AddTime"); + this.OnAddTimeChanged(); + } + } + } + + public event PropertyChangingEventHandler PropertyChanging; + + public event PropertyChangedEventHandler PropertyChanged; + + protected virtual void SendPropertyChanging() + { + if ((this.PropertyChanging != null)) + { + this.PropertyChanging(this, emptyChangingEventArgs); + } + } + + protected virtual void SendPropertyChanged(String propertyName) + { + if ((this.PropertyChanged != null)) + { + this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); + } + } + } + + [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.FeedingRun_SubInspectTerm")] + public partial class FeedingRun_SubInspectTerm : INotifyPropertyChanging, INotifyPropertyChanged + { + + private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); + + private string _SubInspectId; + + private string _ProjectId; + + private string _InstallationId; + + private string _DriverCharge; + + private string _DrivingManager; + + private string _ProjectManager; + + private System.Nullable _DriverChargeIsAllPass; + + private System.Nullable _DrivingManagerIsAllPass; + + private System.Nullable _ProjectManagerIsAllPass; + + private System.Nullable _DriverChargeAllPassData; + + private System.Nullable _DrivingManagerAllPassData; + + private System.Nullable _ProjectManagerAllPassData; + + private System.Nullable _InspectionIsAllPass; + + private System.Nullable _WanderIsComplete; + + private System.Nullable _WanderCompleteData; + + private System.Nullable _IsUnifyWanderAbout; + + private System.Nullable _UnifyWanderAboutData; + + private string _UnifyWanderAboutOpinion; + + private System.Nullable _InspectIsClose; + + private System.Nullable _InspectCloseData; + + private System.Nullable _InspectTime; + + private string _AddUser; + + private System.Nullable _AddTime; + + #region 可扩展性方法定义 + partial void OnLoaded(); + partial void OnValidate(System.Data.Linq.ChangeAction action); + partial void OnCreated(); + partial void OnSubInspectIdChanging(string value); + partial void OnSubInspectIdChanged(); + partial void OnProjectIdChanging(string value); + partial void OnProjectIdChanged(); + partial void OnInstallationIdChanging(string value); + partial void OnInstallationIdChanged(); + partial void OnDriverChargeChanging(string value); + partial void OnDriverChargeChanged(); + partial void OnDrivingManagerChanging(string value); + partial void OnDrivingManagerChanged(); + partial void OnProjectManagerChanging(string value); + partial void OnProjectManagerChanged(); + partial void OnDriverChargeIsAllPassChanging(System.Nullable value); + partial void OnDriverChargeIsAllPassChanged(); + partial void OnDrivingManagerIsAllPassChanging(System.Nullable value); + partial void OnDrivingManagerIsAllPassChanged(); + partial void OnProjectManagerIsAllPassChanging(System.Nullable value); + partial void OnProjectManagerIsAllPassChanged(); + partial void OnDriverChargeAllPassDataChanging(System.Nullable value); + partial void OnDriverChargeAllPassDataChanged(); + partial void OnDrivingManagerAllPassDataChanging(System.Nullable value); + partial void OnDrivingManagerAllPassDataChanged(); + partial void OnProjectManagerAllPassDataChanging(System.Nullable value); + partial void OnProjectManagerAllPassDataChanged(); + partial void OnInspectionIsAllPassChanging(System.Nullable value); + partial void OnInspectionIsAllPassChanged(); + partial void OnWanderIsCompleteChanging(System.Nullable value); + partial void OnWanderIsCompleteChanged(); + partial void OnWanderCompleteDataChanging(System.Nullable value); + partial void OnWanderCompleteDataChanged(); + partial void OnIsUnifyWanderAboutChanging(System.Nullable value); + partial void OnIsUnifyWanderAboutChanged(); + partial void OnUnifyWanderAboutDataChanging(System.Nullable value); + partial void OnUnifyWanderAboutDataChanged(); + partial void OnUnifyWanderAboutOpinionChanging(string value); + partial void OnUnifyWanderAboutOpinionChanged(); + partial void OnInspectIsCloseChanging(System.Nullable value); + partial void OnInspectIsCloseChanged(); + partial void OnInspectCloseDataChanging(System.Nullable value); + partial void OnInspectCloseDataChanged(); + partial void OnInspectTimeChanging(System.Nullable value); + partial void OnInspectTimeChanged(); + partial void OnAddUserChanging(string value); + partial void OnAddUserChanged(); + partial void OnAddTimeChanging(System.Nullable value); + partial void OnAddTimeChanged(); + #endregion + + public FeedingRun_SubInspectTerm() + { + OnCreated(); + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SubInspectId", DbType="VarChar(50) NOT NULL", CanBeNull=false, IsPrimaryKey=true)] + public string SubInspectId + { + get + { + return this._SubInspectId; + } + set + { + if ((this._SubInspectId != value)) + { + this.OnSubInspectIdChanging(value); + this.SendPropertyChanging(); + this._SubInspectId = value; + this.SendPropertyChanged("SubInspectId"); + this.OnSubInspectIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectId", DbType="VarChar(50)")] + public string ProjectId + { + get + { + return this._ProjectId; + } + set + { + if ((this._ProjectId != value)) + { + this.OnProjectIdChanging(value); + this.SendPropertyChanging(); + this._ProjectId = value; + this.SendPropertyChanged("ProjectId"); + this.OnProjectIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_InstallationId", DbType="VarChar(50)")] + public string InstallationId + { + get + { + return this._InstallationId; + } + set + { + if ((this._InstallationId != value)) + { + this.OnInstallationIdChanging(value); + this.SendPropertyChanging(); + this._InstallationId = value; + this.SendPropertyChanged("InstallationId"); + this.OnInstallationIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DriverCharge", DbType="VarChar(50)")] + public string DriverCharge + { + get + { + return this._DriverCharge; + } + set + { + if ((this._DriverCharge != value)) + { + this.OnDriverChargeChanging(value); + this.SendPropertyChanging(); + this._DriverCharge = value; + this.SendPropertyChanged("DriverCharge"); + this.OnDriverChargeChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DrivingManager", DbType="VarChar(50)")] + public string DrivingManager + { + get + { + return this._DrivingManager; + } + set + { + if ((this._DrivingManager != value)) + { + this.OnDrivingManagerChanging(value); + this.SendPropertyChanging(); + this._DrivingManager = value; + this.SendPropertyChanged("DrivingManager"); + this.OnDrivingManagerChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectManager", DbType="VarChar(50)")] + public string ProjectManager + { + get + { + return this._ProjectManager; + } + set + { + if ((this._ProjectManager != value)) + { + this.OnProjectManagerChanging(value); + this.SendPropertyChanging(); + this._ProjectManager = value; + this.SendPropertyChanged("ProjectManager"); + this.OnProjectManagerChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DriverChargeIsAllPass", DbType="Int")] + public System.Nullable DriverChargeIsAllPass + { + get + { + return this._DriverChargeIsAllPass; + } + set + { + if ((this._DriverChargeIsAllPass != value)) + { + this.OnDriverChargeIsAllPassChanging(value); + this.SendPropertyChanging(); + this._DriverChargeIsAllPass = value; + this.SendPropertyChanged("DriverChargeIsAllPass"); + this.OnDriverChargeIsAllPassChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DrivingManagerIsAllPass", DbType="Int")] + public System.Nullable DrivingManagerIsAllPass + { + get + { + return this._DrivingManagerIsAllPass; + } + set + { + if ((this._DrivingManagerIsAllPass != value)) + { + this.OnDrivingManagerIsAllPassChanging(value); + this.SendPropertyChanging(); + this._DrivingManagerIsAllPass = value; + this.SendPropertyChanged("DrivingManagerIsAllPass"); + this.OnDrivingManagerIsAllPassChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectManagerIsAllPass", DbType="Int")] + public System.Nullable ProjectManagerIsAllPass + { + get + { + return this._ProjectManagerIsAllPass; + } + set + { + if ((this._ProjectManagerIsAllPass != value)) + { + this.OnProjectManagerIsAllPassChanging(value); + this.SendPropertyChanging(); + this._ProjectManagerIsAllPass = value; + this.SendPropertyChanged("ProjectManagerIsAllPass"); + this.OnProjectManagerIsAllPassChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DriverChargeAllPassData", DbType="DateTime")] + public System.Nullable DriverChargeAllPassData + { + get + { + return this._DriverChargeAllPassData; + } + set + { + if ((this._DriverChargeAllPassData != value)) + { + this.OnDriverChargeAllPassDataChanging(value); + this.SendPropertyChanging(); + this._DriverChargeAllPassData = value; + this.SendPropertyChanged("DriverChargeAllPassData"); + this.OnDriverChargeAllPassDataChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DrivingManagerAllPassData", DbType="DateTime")] + public System.Nullable DrivingManagerAllPassData + { + get + { + return this._DrivingManagerAllPassData; + } + set + { + if ((this._DrivingManagerAllPassData != value)) + { + this.OnDrivingManagerAllPassDataChanging(value); + this.SendPropertyChanging(); + this._DrivingManagerAllPassData = value; + this.SendPropertyChanged("DrivingManagerAllPassData"); + this.OnDrivingManagerAllPassDataChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectManagerAllPassData", DbType="DateTime")] + public System.Nullable ProjectManagerAllPassData + { + get + { + return this._ProjectManagerAllPassData; + } + set + { + if ((this._ProjectManagerAllPassData != value)) + { + this.OnProjectManagerAllPassDataChanging(value); + this.SendPropertyChanging(); + this._ProjectManagerAllPassData = value; + this.SendPropertyChanged("ProjectManagerAllPassData"); + this.OnProjectManagerAllPassDataChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_InspectionIsAllPass", DbType="Int")] + public System.Nullable InspectionIsAllPass + { + get + { + return this._InspectionIsAllPass; + } + set + { + if ((this._InspectionIsAllPass != value)) + { + this.OnInspectionIsAllPassChanging(value); + this.SendPropertyChanging(); + this._InspectionIsAllPass = value; + this.SendPropertyChanged("InspectionIsAllPass"); + this.OnInspectionIsAllPassChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WanderIsComplete", DbType="Int")] + public System.Nullable WanderIsComplete + { + get + { + return this._WanderIsComplete; + } + set + { + if ((this._WanderIsComplete != value)) + { + this.OnWanderIsCompleteChanging(value); + this.SendPropertyChanging(); + this._WanderIsComplete = value; + this.SendPropertyChanged("WanderIsComplete"); + this.OnWanderIsCompleteChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WanderCompleteData", DbType="DateTime")] + public System.Nullable WanderCompleteData + { + get + { + return this._WanderCompleteData; + } + set + { + if ((this._WanderCompleteData != value)) + { + this.OnWanderCompleteDataChanging(value); + this.SendPropertyChanging(); + this._WanderCompleteData = value; + this.SendPropertyChanged("WanderCompleteData"); + this.OnWanderCompleteDataChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsUnifyWanderAbout", DbType="Int")] + public System.Nullable IsUnifyWanderAbout + { + get + { + return this._IsUnifyWanderAbout; + } + set + { + if ((this._IsUnifyWanderAbout != value)) + { + this.OnIsUnifyWanderAboutChanging(value); + this.SendPropertyChanging(); + this._IsUnifyWanderAbout = value; + this.SendPropertyChanged("IsUnifyWanderAbout"); + this.OnIsUnifyWanderAboutChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UnifyWanderAboutData", DbType="DateTime")] + public System.Nullable UnifyWanderAboutData + { + get + { + return this._UnifyWanderAboutData; + } + set + { + if ((this._UnifyWanderAboutData != value)) + { + this.OnUnifyWanderAboutDataChanging(value); + this.SendPropertyChanging(); + this._UnifyWanderAboutData = value; + this.SendPropertyChanged("UnifyWanderAboutData"); + this.OnUnifyWanderAboutDataChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UnifyWanderAboutOpinion", DbType="VarChar(MAX)", UpdateCheck=UpdateCheck.Never)] + public string UnifyWanderAboutOpinion + { + get + { + return this._UnifyWanderAboutOpinion; + } + set + { + if ((this._UnifyWanderAboutOpinion != value)) + { + this.OnUnifyWanderAboutOpinionChanging(value); + this.SendPropertyChanging(); + this._UnifyWanderAboutOpinion = value; + this.SendPropertyChanged("UnifyWanderAboutOpinion"); + this.OnUnifyWanderAboutOpinionChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_InspectIsClose", DbType="Int")] + public System.Nullable InspectIsClose + { + get + { + return this._InspectIsClose; + } + set + { + if ((this._InspectIsClose != value)) + { + this.OnInspectIsCloseChanging(value); + this.SendPropertyChanging(); + this._InspectIsClose = value; + this.SendPropertyChanged("InspectIsClose"); + this.OnInspectIsCloseChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_InspectCloseData", DbType="DateTime")] + public System.Nullable InspectCloseData + { + get + { + return this._InspectCloseData; + } + set + { + if ((this._InspectCloseData != value)) + { + this.OnInspectCloseDataChanging(value); + this.SendPropertyChanging(); + this._InspectCloseData = value; + this.SendPropertyChanged("InspectCloseData"); + this.OnInspectCloseDataChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_InspectTime", DbType="DateTime")] + public System.Nullable InspectTime + { + get + { + return this._InspectTime; + } + set + { + if ((this._InspectTime != value)) + { + this.OnInspectTimeChanging(value); + this.SendPropertyChanging(); + this._InspectTime = value; + this.SendPropertyChanged("InspectTime"); + this.OnInspectTimeChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AddUser", DbType="VarChar(50)")] + public string AddUser + { + get + { + return this._AddUser; + } + set + { + if ((this._AddUser != value)) + { + this.OnAddUserChanging(value); + this.SendPropertyChanging(); + this._AddUser = value; + this.SendPropertyChanged("AddUser"); + this.OnAddUserChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AddTime", DbType="DateTime")] + public System.Nullable AddTime + { + get + { + return this._AddTime; + } + set + { + if ((this._AddTime != value)) + { + this.OnAddTimeChanging(value); + this.SendPropertyChanging(); + this._AddTime = value; + this.SendPropertyChanged("AddTime"); + this.OnAddTimeChanged(); + } + } + } + + public event PropertyChangingEventHandler PropertyChanging; + + public event PropertyChangedEventHandler PropertyChanged; + + protected virtual void SendPropertyChanging() + { + if ((this.PropertyChanging != null)) + { + this.PropertyChanging(this, emptyChangingEventArgs); + } + } + + protected virtual void SendPropertyChanged(String propertyName) + { + if ((this.PropertyChanged != null)) + { + this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); + } + } + } + + [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.FeedingRun_SubInspectTermItem")] + public partial class FeedingRun_SubInspectTermItem : INotifyPropertyChanging, INotifyPropertyChanged + { + + private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); + + private string _TermItemId; + + private string _ProjectId; + + private string _InstallationId; + + private string _SubInspectId; + + private string _GroupName; + + private string _WorkInspectId; + + private string _WorkInspectName; + + private string _InspectedUser; + + private System.Nullable _InspectionResults; + + private string _InspectionIllustrate; + + private string _DriverCharge; + + private string _DrivingManager; + + private string _ProjectManager; + + private System.Nullable _DriverChargeIsPass; + + private System.Nullable _DrivingManagerIsPass; + + private System.Nullable _ProjectManagerIsPass; + + private string _DriverChargeRemark; + + private string _DrivingManagerRemark; + + private string _ProjectManagerRemark; + + private string _Remark; + + private string _AddUser; + + private System.Nullable _AddTime; + + private System.Nullable _Sort; + + #region 可扩展性方法定义 + partial void OnLoaded(); + partial void OnValidate(System.Data.Linq.ChangeAction action); + partial void OnCreated(); + partial void OnTermItemIdChanging(string value); + partial void OnTermItemIdChanged(); + partial void OnProjectIdChanging(string value); + partial void OnProjectIdChanged(); + partial void OnInstallationIdChanging(string value); + partial void OnInstallationIdChanged(); + partial void OnSubInspectIdChanging(string value); + partial void OnSubInspectIdChanged(); + partial void OnGroupNameChanging(string value); + partial void OnGroupNameChanged(); + partial void OnWorkInspectIdChanging(string value); + partial void OnWorkInspectIdChanged(); + partial void OnWorkInspectNameChanging(string value); + partial void OnWorkInspectNameChanged(); + partial void OnInspectedUserChanging(string value); + partial void OnInspectedUserChanged(); + partial void OnInspectionResultsChanging(System.Nullable value); + partial void OnInspectionResultsChanged(); + partial void OnInspectionIllustrateChanging(string value); + partial void OnInspectionIllustrateChanged(); + partial void OnDriverChargeChanging(string value); + partial void OnDriverChargeChanged(); + partial void OnDrivingManagerChanging(string value); + partial void OnDrivingManagerChanged(); + partial void OnProjectManagerChanging(string value); + partial void OnProjectManagerChanged(); + partial void OnDriverChargeIsPassChanging(System.Nullable value); + partial void OnDriverChargeIsPassChanged(); + partial void OnDrivingManagerIsPassChanging(System.Nullable value); + partial void OnDrivingManagerIsPassChanged(); + partial void OnProjectManagerIsPassChanging(System.Nullable value); + partial void OnProjectManagerIsPassChanged(); + partial void OnDriverChargeRemarkChanging(string value); + partial void OnDriverChargeRemarkChanged(); + partial void OnDrivingManagerRemarkChanging(string value); + partial void OnDrivingManagerRemarkChanged(); + partial void OnProjectManagerRemarkChanging(string value); + partial void OnProjectManagerRemarkChanged(); + partial void OnRemarkChanging(string value); + partial void OnRemarkChanged(); + partial void OnAddUserChanging(string value); + partial void OnAddUserChanged(); + partial void OnAddTimeChanging(System.Nullable value); + partial void OnAddTimeChanged(); + partial void OnSortChanging(System.Nullable value); + partial void OnSortChanged(); + #endregion + + public FeedingRun_SubInspectTermItem() + { + OnCreated(); + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TermItemId", DbType="VarChar(50) NOT NULL", CanBeNull=false, IsPrimaryKey=true)] + public string TermItemId + { + get + { + return this._TermItemId; + } + set + { + if ((this._TermItemId != value)) + { + this.OnTermItemIdChanging(value); + this.SendPropertyChanging(); + this._TermItemId = value; + this.SendPropertyChanged("TermItemId"); + this.OnTermItemIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectId", DbType="VarChar(50)")] + public string ProjectId + { + get + { + return this._ProjectId; + } + set + { + if ((this._ProjectId != value)) + { + this.OnProjectIdChanging(value); + this.SendPropertyChanging(); + this._ProjectId = value; + this.SendPropertyChanged("ProjectId"); + this.OnProjectIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_InstallationId", DbType="VarChar(50)")] + public string InstallationId + { + get + { + return this._InstallationId; + } + set + { + if ((this._InstallationId != value)) + { + this.OnInstallationIdChanging(value); + this.SendPropertyChanging(); + this._InstallationId = value; + this.SendPropertyChanged("InstallationId"); + this.OnInstallationIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SubInspectId", DbType="VarChar(50)")] + public string SubInspectId + { + get + { + return this._SubInspectId; + } + set + { + if ((this._SubInspectId != value)) + { + this.OnSubInspectIdChanging(value); + this.SendPropertyChanging(); + this._SubInspectId = value; + this.SendPropertyChanged("SubInspectId"); + this.OnSubInspectIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_GroupName", DbType="VarChar(50)")] + public string GroupName + { + get + { + return this._GroupName; + } + set + { + if ((this._GroupName != value)) + { + this.OnGroupNameChanging(value); + this.SendPropertyChanging(); + this._GroupName = value; + this.SendPropertyChanged("GroupName"); + this.OnGroupNameChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkInspectId", DbType="VarChar(50) NOT NULL", CanBeNull=false)] + public string WorkInspectId + { + get + { + return this._WorkInspectId; + } + set + { + if ((this._WorkInspectId != value)) + { + this.OnWorkInspectIdChanging(value); + this.SendPropertyChanging(); + this._WorkInspectId = value; + this.SendPropertyChanged("WorkInspectId"); + this.OnWorkInspectIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkInspectName", DbType="VarChar(500)")] + public string WorkInspectName + { + get + { + return this._WorkInspectName; + } + set + { + if ((this._WorkInspectName != value)) + { + this.OnWorkInspectNameChanging(value); + this.SendPropertyChanging(); + this._WorkInspectName = value; + this.SendPropertyChanged("WorkInspectName"); + this.OnWorkInspectNameChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_InspectedUser", DbType="VarChar(50)")] + public string InspectedUser + { + get + { + return this._InspectedUser; + } + set + { + if ((this._InspectedUser != value)) + { + this.OnInspectedUserChanging(value); + this.SendPropertyChanging(); + this._InspectedUser = value; + this.SendPropertyChanged("InspectedUser"); + this.OnInspectedUserChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_InspectionResults", DbType="Int")] + public System.Nullable InspectionResults + { + get + { + return this._InspectionResults; + } + set + { + if ((this._InspectionResults != value)) + { + this.OnInspectionResultsChanging(value); + this.SendPropertyChanging(); + this._InspectionResults = value; + this.SendPropertyChanged("InspectionResults"); + this.OnInspectionResultsChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_InspectionIllustrate", DbType="VarChar(200)")] + public string InspectionIllustrate + { + get + { + return this._InspectionIllustrate; + } + set + { + if ((this._InspectionIllustrate != value)) + { + this.OnInspectionIllustrateChanging(value); + this.SendPropertyChanging(); + this._InspectionIllustrate = value; + this.SendPropertyChanged("InspectionIllustrate"); + this.OnInspectionIllustrateChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DriverCharge", DbType="VarChar(50)")] + public string DriverCharge + { + get + { + return this._DriverCharge; + } + set + { + if ((this._DriverCharge != value)) + { + this.OnDriverChargeChanging(value); + this.SendPropertyChanging(); + this._DriverCharge = value; + this.SendPropertyChanged("DriverCharge"); + this.OnDriverChargeChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DrivingManager", DbType="VarChar(50)")] + public string DrivingManager + { + get + { + return this._DrivingManager; + } + set + { + if ((this._DrivingManager != value)) + { + this.OnDrivingManagerChanging(value); + this.SendPropertyChanging(); + this._DrivingManager = value; + this.SendPropertyChanged("DrivingManager"); + this.OnDrivingManagerChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectManager", DbType="VarChar(50)")] + public string ProjectManager + { + get + { + return this._ProjectManager; + } + set + { + if ((this._ProjectManager != value)) + { + this.OnProjectManagerChanging(value); + this.SendPropertyChanging(); + this._ProjectManager = value; + this.SendPropertyChanged("ProjectManager"); + this.OnProjectManagerChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DriverChargeIsPass", DbType="Int")] + public System.Nullable DriverChargeIsPass + { + get + { + return this._DriverChargeIsPass; + } + set + { + if ((this._DriverChargeIsPass != value)) + { + this.OnDriverChargeIsPassChanging(value); + this.SendPropertyChanging(); + this._DriverChargeIsPass = value; + this.SendPropertyChanged("DriverChargeIsPass"); + this.OnDriverChargeIsPassChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DrivingManagerIsPass", DbType="Int")] + public System.Nullable DrivingManagerIsPass + { + get + { + return this._DrivingManagerIsPass; + } + set + { + if ((this._DrivingManagerIsPass != value)) + { + this.OnDrivingManagerIsPassChanging(value); + this.SendPropertyChanging(); + this._DrivingManagerIsPass = value; + this.SendPropertyChanged("DrivingManagerIsPass"); + this.OnDrivingManagerIsPassChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectManagerIsPass", DbType="Int")] + public System.Nullable ProjectManagerIsPass + { + get + { + return this._ProjectManagerIsPass; + } + set + { + if ((this._ProjectManagerIsPass != value)) + { + this.OnProjectManagerIsPassChanging(value); + this.SendPropertyChanging(); + this._ProjectManagerIsPass = value; + this.SendPropertyChanged("ProjectManagerIsPass"); + this.OnProjectManagerIsPassChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DriverChargeRemark", DbType="VarChar(1000)")] + public string DriverChargeRemark + { + get + { + return this._DriverChargeRemark; + } + set + { + if ((this._DriverChargeRemark != value)) + { + this.OnDriverChargeRemarkChanging(value); + this.SendPropertyChanging(); + this._DriverChargeRemark = value; + this.SendPropertyChanged("DriverChargeRemark"); + this.OnDriverChargeRemarkChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DrivingManagerRemark", DbType="VarChar(1000)")] + public string DrivingManagerRemark + { + get + { + return this._DrivingManagerRemark; + } + set + { + if ((this._DrivingManagerRemark != value)) + { + this.OnDrivingManagerRemarkChanging(value); + this.SendPropertyChanging(); + this._DrivingManagerRemark = value; + this.SendPropertyChanged("DrivingManagerRemark"); + this.OnDrivingManagerRemarkChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectManagerRemark", DbType="VarChar(1000)")] + public string ProjectManagerRemark + { + get + { + return this._ProjectManagerRemark; + } + set + { + if ((this._ProjectManagerRemark != value)) + { + this.OnProjectManagerRemarkChanging(value); + this.SendPropertyChanging(); + this._ProjectManagerRemark = value; + this.SendPropertyChanged("ProjectManagerRemark"); + this.OnProjectManagerRemarkChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Remark", DbType="VarChar(200)")] + public string Remark + { + get + { + return this._Remark; + } + set + { + if ((this._Remark != value)) + { + this.OnRemarkChanging(value); + this.SendPropertyChanging(); + this._Remark = value; + this.SendPropertyChanged("Remark"); + this.OnRemarkChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AddUser", DbType="VarChar(50)")] + public string AddUser + { + get + { + return this._AddUser; + } + set + { + if ((this._AddUser != value)) + { + this.OnAddUserChanging(value); + this.SendPropertyChanging(); + this._AddUser = value; + this.SendPropertyChanged("AddUser"); + this.OnAddUserChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AddTime", DbType="DateTime")] + public System.Nullable AddTime + { + get + { + return this._AddTime; + } + set + { + if ((this._AddTime != value)) + { + this.OnAddTimeChanging(value); + this.SendPropertyChanging(); + this._AddTime = value; + this.SendPropertyChanged("AddTime"); + this.OnAddTimeChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Sort", DbType="Int")] + public System.Nullable Sort + { + get + { + return this._Sort; + } + set + { + if ((this._Sort != value)) + { + this.OnSortChanging(value); + this.SendPropertyChanging(); + this._Sort = value; + this.SendPropertyChanged("Sort"); + this.OnSortChanged(); + } + } + } + + public event PropertyChangingEventHandler PropertyChanging; + + public event PropertyChangedEventHandler PropertyChanged; + + protected virtual void SendPropertyChanging() + { + if ((this.PropertyChanging != null)) + { + this.PropertyChanging(this, emptyChangingEventArgs); + } + } + + protected virtual void SendPropertyChanged(String propertyName) + { + if ((this.PropertyChanged != null)) + { + this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); + } + } + } + + [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.FeedingRun_WorkInspectTemplate")] + public partial class FeedingRun_WorkInspectTemplate : INotifyPropertyChanging, INotifyPropertyChanged + { + + private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); + + private string _WorkInspectId; + + private string _WorkInspectName; + + private string _Remark; + + private string _GroupName; + + private string _AddUser; + + private System.Nullable _AddTime; + + private System.Nullable _Sort; + + #region 可扩展性方法定义 + partial void OnLoaded(); + partial void OnValidate(System.Data.Linq.ChangeAction action); + partial void OnCreated(); + partial void OnWorkInspectIdChanging(string value); + partial void OnWorkInspectIdChanged(); + partial void OnWorkInspectNameChanging(string value); + partial void OnWorkInspectNameChanged(); + partial void OnRemarkChanging(string value); + partial void OnRemarkChanged(); + partial void OnGroupNameChanging(string value); + partial void OnGroupNameChanged(); + partial void OnAddUserChanging(string value); + partial void OnAddUserChanged(); + partial void OnAddTimeChanging(System.Nullable value); + partial void OnAddTimeChanged(); + partial void OnSortChanging(System.Nullable value); + partial void OnSortChanged(); + #endregion + + public FeedingRun_WorkInspectTemplate() + { + OnCreated(); + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkInspectId", DbType="VarChar(50) NOT NULL", CanBeNull=false, IsPrimaryKey=true)] + public string WorkInspectId + { + get + { + return this._WorkInspectId; + } + set + { + if ((this._WorkInspectId != value)) + { + this.OnWorkInspectIdChanging(value); + this.SendPropertyChanging(); + this._WorkInspectId = value; + this.SendPropertyChanged("WorkInspectId"); + this.OnWorkInspectIdChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WorkInspectName", DbType="VarChar(500)")] + public string WorkInspectName + { + get + { + return this._WorkInspectName; + } + set + { + if ((this._WorkInspectName != value)) + { + this.OnWorkInspectNameChanging(value); + this.SendPropertyChanging(); + this._WorkInspectName = value; + this.SendPropertyChanged("WorkInspectName"); + this.OnWorkInspectNameChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Remark", DbType="NVarChar(150)")] + public string Remark + { + get + { + return this._Remark; + } + set + { + if ((this._Remark != value)) + { + this.OnRemarkChanging(value); + this.SendPropertyChanging(); + this._Remark = value; + this.SendPropertyChanged("Remark"); + this.OnRemarkChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_GroupName", DbType="VarChar(50)")] + public string GroupName + { + get + { + return this._GroupName; + } + set + { + if ((this._GroupName != value)) + { + this.OnGroupNameChanging(value); + this.SendPropertyChanging(); + this._GroupName = value; + this.SendPropertyChanged("GroupName"); + this.OnGroupNameChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AddUser", DbType="VarChar(50)")] + public string AddUser + { + get + { + return this._AddUser; + } + set + { + if ((this._AddUser != value)) + { + this.OnAddUserChanging(value); + this.SendPropertyChanging(); + this._AddUser = value; + this.SendPropertyChanged("AddUser"); + this.OnAddUserChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AddTime", DbType="DateTime")] + public System.Nullable AddTime + { + get + { + return this._AddTime; + } + set + { + if ((this._AddTime != value)) + { + this.OnAddTimeChanging(value); + this.SendPropertyChanging(); + this._AddTime = value; + this.SendPropertyChanged("AddTime"); + this.OnAddTimeChanged(); + } + } + } + + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Sort", DbType="Int")] + public System.Nullable Sort + { + get + { + return this._Sort; + } + set + { + if ((this._Sort != value)) + { + this.OnSortChanging(value); + this.SendPropertyChanging(); + this._Sort = value; + this.SendPropertyChanged("Sort"); + this.OnSortChanged(); + } + } + } + + public event PropertyChangingEventHandler PropertyChanging; + + public event PropertyChangedEventHandler PropertyChanged; + + protected virtual void SendPropertyChanging() + { + if ((this.PropertyChanging != null)) + { + this.PropertyChanging(this, emptyChangingEventArgs); + } + } + + protected virtual void SendPropertyChanged(String propertyName) + { + if ((this.PropertyChanged != null)) + { + this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); + } + } + } + [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.FinalFileManage_FinalFileList")] public partial class FinalFileManage_FinalFileList : INotifyPropertyChanging, INotifyPropertyChanged { @@ -308952,6 +311141,8 @@ namespace Model private System.Nullable _CompleteNum; + private System.Nullable _NotStartedNum; + private System.Nullable _CompleteRate; private string _AddUser; @@ -308980,6 +311171,8 @@ namespace Model partial void OnProgressNumChanged(); partial void OnCompleteNumChanging(System.Nullable value); partial void OnCompleteNumChanged(); + partial void OnNotStartedNumChanging(System.Nullable value); + partial void OnNotStartedNumChanged(); partial void OnCompleteRateChanging(System.Nullable value); partial void OnCompleteRateChanged(); partial void OnAddUserChanging(string value); @@ -309155,6 +311348,26 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_NotStartedNum", DbType="Int")] + public System.Nullable NotStartedNum + { + get + { + return this._NotStartedNum; + } + set + { + if ((this._NotStartedNum != value)) + { + this.OnNotStartedNumChanging(value); + this.SendPropertyChanging(); + this._NotStartedNum = value; + this.SendPropertyChanged("NotStartedNum"); + this.OnNotStartedNumChanged(); + } + } + } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CompleteRate", DbType="Decimal(18,2)")] public System.Nullable CompleteRate { diff --git a/SGGL/WebAPI/WebAPI.csproj.user b/SGGL/WebAPI/WebAPI.csproj.user index 5fe155da..bd497c6b 100644 --- a/SGGL/WebAPI/WebAPI.csproj.user +++ b/SGGL/WebAPI/WebAPI.csproj.user @@ -1,7 +1,7 @@  - Debug|Any CPU + Release|Any CPU true