| 
									
										
										
										
											2024-01-25 15:21:19 +08:00
										 |  |  |  | using BLL; | 
					
						
							|  |  |  |  | using Newtonsoft.Json.Linq; | 
					
						
							| 
									
										
										
										
											2024-01-25 16:16:18 +08:00
										 |  |  |  | using NPOI.SS.Util; | 
					
						
							| 
									
										
										
										
											2024-01-25 15:21:19 +08:00
										 |  |  |  | using System; | 
					
						
							|  |  |  |  | using System.Collections.Generic; | 
					
						
							|  |  |  |  | using System.Data; | 
					
						
							|  |  |  |  | using System.Data.SqlClient; | 
					
						
							|  |  |  |  | using System.IO; | 
					
						
							|  |  |  |  | using System.Linq; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | namespace FineUIPro.Web.TestRun.DriverPrepare | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     public partial class SchemePlan : PageBase | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         #region 加载 | 
					
						
							|  |  |  |  |         protected void Page_Load(object sender, EventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             if (!IsPostBack) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 GetButtonPower(); | 
					
						
							|  |  |  |  |                 BindGrid(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 数据绑定 | 
					
						
							|  |  |  |  |         //加载列表 | 
					
						
							|  |  |  |  |         public void BindGrid() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             string strSql = @"select * from DriverPrepare_SchemePlanItem chec" | 
					
						
							|  |  |  |  |                             + @" left join DriverPrepare_SchemePlan u on u.SchemePlanId = chec.SchemePlanId where u.ProjectId=@projectId"; | 
					
						
							|  |  |  |  |             List<SqlParameter> listStr = new List<SqlParameter>(); | 
					
						
							|  |  |  |  |             listStr.Add(new SqlParameter("@projectId", this.CurrUser.LoginProjectId)); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             SqlParameter[] parameter = listStr.ToArray(); | 
					
						
							|  |  |  |  |             DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); | 
					
						
							|  |  |  |  |             Grid1.RecordCount = tb.Rows.Count; | 
					
						
							|  |  |  |  |             //tb = GetFilteredTable(Grid1.FilteredData, tb); | 
					
						
							|  |  |  |  |             var table = this.GetPagedDataTable(Grid1, tb); | 
					
						
							|  |  |  |  |             Grid1.DataSource = table; | 
					
						
							|  |  |  |  |             Grid1.DataBind(); | 
					
						
							| 
									
										
										
										
											2024-01-25 16:16:18 +08:00
										 |  |  |  |             var solutionType = (from x in Funs.DB.DriverPrepare_SchemePlan | 
					
						
							|  |  |  |  |                                 join y in Funs.DB.DriverPrepare_SchemePlanItem on x.SchemePlanId equals y.SchemePlanId | 
					
						
							|  |  |  |  |                                 where y.SolutionType != null && x.ProjectId == this.CurrUser.LoginProjectId | 
					
						
							|  |  |  |  |                                 select y).FirstOrDefault(); | 
					
						
							|  |  |  |  |             if (solutionType == null) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 this.Grid1.Columns[1].Hidden = true; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             else | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 this.Grid1.Columns[1].Hidden = false; | 
					
						
							|  |  |  |  |             } | 
					
						
							| 
									
										
										
										
											2024-01-25 15:21:19 +08:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 编辑 | 
					
						
							|  |  |  |  |         protected void btnMenuModify_Click(object sender, EventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             EditData(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// Grid行双击事件 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="sender"></param> | 
					
						
							|  |  |  |  |         /// <param name="e"></param> | 
					
						
							|  |  |  |  |         protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             EditData(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 编辑 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         private void EditData() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             if (Grid1.SelectedRowIndexArray.Length == 0) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 Alert.ShowInTop("请至少选择一条记录", MessageBoxIcon.Warning); | 
					
						
							|  |  |  |  |                 return; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("SchemePlanItemAdd.aspx?SchemePlanItemId={0}", Grid1.SelectedRowID, "编辑 - "))); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 删除 | 
					
						
							|  |  |  |  |         protected void btnMenuDel_Click(object sender, EventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             if (Grid1.SelectedRowIndexArray.Length > 0) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 foreach (int rowIndex in Grid1.SelectedRowIndexArray) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     BLL.DriverPrepareSchemePlanItemService.DeleteSchemePlanItemById(Grid1.SelectedRowID); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 BindGrid(); | 
					
						
							|  |  |  |  |                 ShowNotify("删除数据成功!", MessageBoxIcon.Success); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2024-01-29 16:57:52 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         protected void btnDel_Click(object sender, EventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             var plan = (from x in Funs.DB.DriverPrepare_SchemePlan where x.ProjectId == this.CurrUser.LoginProjectId select x).FirstOrDefault(); | 
					
						
							|  |  |  |  |             if (plan == null) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 Alert.ShowInTop("项目无记录,无需删除!", MessageBoxIcon.Warning); | 
					
						
							|  |  |  |  |                 return; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             BLL.DriverPrepareSchemePlanItemService.DeleteSchemePlanItemByschemePlanId(plan.SchemePlanId); | 
					
						
							|  |  |  |  |             BLL.DriverPrepareSchemePlanService.DeleteDriverPlan(plan.SchemePlanId); | 
					
						
							|  |  |  |  |             BindGrid(); | 
					
						
							|  |  |  |  |             ShowNotify("删除数据成功!", MessageBoxIcon.Success); | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2024-01-25 15:21:19 +08:00
										 |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 权限设置 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 权限设置 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         private void GetButtonPower() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.SchemePlanMenuId); | 
					
						
							|  |  |  |  |             if (buttonList.Count() > 0) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 if (buttonList.Contains(BLL.Const.BtnAdd)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     this.btnNew.Hidden = false; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (buttonList.Contains(BLL.Const.BtnModify)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     this.btnMenuModify.Hidden = false; | 
					
						
							|  |  |  |  |                     this.Grid1.EnableRowDoubleClickEvent = true; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (buttonList.Contains(BLL.Const.BtnDelete)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2024-01-29 16:57:52 +08:00
										 |  |  |  |                     this.btnDel.Hidden = false; | 
					
						
							| 
									
										
										
										
											2024-01-25 15:21:19 +08:00
										 |  |  |  |                     this.btnMenuDel.Hidden = false; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 搜索 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 搜索 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="sender"></param> | 
					
						
							|  |  |  |  |         /// <param name="e"></param> | 
					
						
							|  |  |  |  |         protected void btnNew_Click(object sender, EventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             string window = String.Format("SchemePlanItemAdd.aspx", "新增 - "); | 
					
						
							|  |  |  |  |             PageContext.RegisterStartupScript(Window2.GetSaveStateReference(hdItemsString.ClientID) + Window2.GetShowReference(window)); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 关闭弹出窗口 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 关闭弹出窗口 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="sender"></param> | 
					
						
							|  |  |  |  |         /// <param name="e"></param> | 
					
						
							|  |  |  |  |         protected void Window1_Close(object sender, WindowCloseEventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             BindGrid(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 选择事件 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="sender"></param> | 
					
						
							|  |  |  |  |         /// <param name="e"></param> | 
					
						
							|  |  |  |  |         protected void btnSelect_Click(object sender, EventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             //JArray mergedData = Grid1.GetMergedData(); | 
					
						
							|  |  |  |  |             //string names = string.Empty; | 
					
						
							|  |  |  |  |             //foreach (JObject mergedRow in mergedData) | 
					
						
							|  |  |  |  |             //{ | 
					
						
							|  |  |  |  |             //    string status = mergedRow.Value<string>("status"); | 
					
						
							|  |  |  |  |             //    JObject values = mergedRow.Value<JObject>("values"); | 
					
						
							|  |  |  |  |             //    names += values.Value<string>("SolutionName").ToString() + ","; | 
					
						
							|  |  |  |  |             //} | 
					
						
							|  |  |  |  |             //if (!string.IsNullOrEmpty(names)) | 
					
						
							|  |  |  |  |             //{ | 
					
						
							|  |  |  |  |             //    hdItemsString.Text = names.Substring(0, names.Length - 1); | 
					
						
							|  |  |  |  |             //} | 
					
						
							|  |  |  |  |             Model.DriverPrepare_SchemePlan plan = BLL.DriverPrepareSchemePlanService.GetDriverPlanByProjectId(this.CurrUser.LoginProjectId); | 
					
						
							|  |  |  |  |             string schemePlanId = string.Empty; | 
					
						
							|  |  |  |  |             if (plan != null) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 schemePlanId = plan.SchemePlanId; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             string window = String.Format("SchemePlanItemSelect.aspx?SchemePlanId={0}", schemePlanId, "选择 - "); | 
					
						
							|  |  |  |  |             PageContext.RegisterStartupScript(Window1.GetShowReference(window)); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 导出按钮 | 
					
						
							|  |  |  |  |         /// 导出按钮 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="sender"></param> | 
					
						
							|  |  |  |  |         /// <param name="e"></param> | 
					
						
							|  |  |  |  |         protected void btnOut_Click(object sender, EventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             string rootPath = Server.MapPath("~/"); | 
					
						
							|  |  |  |  |             string initTemplatePath = string.Empty; | 
					
						
							|  |  |  |  |             string uploadfilepath = string.Empty; | 
					
						
							|  |  |  |  |             string newUrl = string.Empty; | 
					
						
							|  |  |  |  |             string filePath = string.Empty; | 
					
						
							| 
									
										
										
										
											2024-01-25 16:16:18 +08:00
										 |  |  |  |             var solutionType = (from x in Funs.DB.DriverPrepare_SchemePlan | 
					
						
							|  |  |  |  |                                 join y in Funs.DB.DriverPrepare_SchemePlanItem on x.SchemePlanId equals y.SchemePlanId | 
					
						
							|  |  |  |  |                                 where y.SolutionType != null && x.ProjectId == this.CurrUser.LoginProjectId | 
					
						
							|  |  |  |  |                                 select y).FirstOrDefault(); | 
					
						
							|  |  |  |  |             if (solutionType == null) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 initTemplatePath = Const.SchemePlanTemplateUrl; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             else | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 initTemplatePath = Const.SchemePlan2TemplateUrl; | 
					
						
							|  |  |  |  |             } | 
					
						
							| 
									
										
										
										
											2024-01-25 15:21:19 +08:00
										 |  |  |  |             uploadfilepath = rootPath + initTemplatePath; | 
					
						
							|  |  |  |  |             Model.DriverPrepare_SchemePlan plan = BLL.DriverPrepareSchemePlanService.GetDriverPlanByProjectId(this.CurrUser.LoginProjectId); | 
					
						
							|  |  |  |  |             if (plan != null) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 string projectName = BLL.ProjectService.GetProjectNameByProjectId(plan.ProjectId); | 
					
						
							| 
									
										
										
										
											2024-01-25 16:16:18 +08:00
										 |  |  |  |                 if (solutionType == null) | 
					
						
							| 
									
										
										
										
											2024-01-25 15:21:19 +08:00
										 |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2024-01-25 16:16:18 +08:00
										 |  |  |  |                     newUrl = uploadfilepath.Replace(".xlsx", "(" + projectName + ")" + ".xlsx"); | 
					
						
							|  |  |  |  |                     File.Copy(uploadfilepath, newUrl); | 
					
						
							|  |  |  |  |                     // 第一步:读取文件流 | 
					
						
							|  |  |  |  |                     NPOI.SS.UserModel.IWorkbook workbook; | 
					
						
							|  |  |  |  |                     using (FileStream stream = new FileStream(newUrl, FileMode.Open, FileAccess.Read)) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         workbook = new NPOI.XSSF.UserModel.XSSFWorkbook(stream); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     // 创建单元格样式 | 
					
						
							|  |  |  |  |                     NPOI.SS.UserModel.ICellStyle cellStyle = workbook.CreateCellStyle(); | 
					
						
							|  |  |  |  |                     cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin; | 
					
						
							|  |  |  |  |                     cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin; | 
					
						
							|  |  |  |  |                     cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin; | 
					
						
							|  |  |  |  |                     cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; | 
					
						
							|  |  |  |  |                     cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; | 
					
						
							|  |  |  |  |                     cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; | 
					
						
							|  |  |  |  |                     var font = workbook.CreateFont(); | 
					
						
							|  |  |  |  |                     font.FontHeightInPoints = 11; | 
					
						
							|  |  |  |  |                     cellStyle.SetFont(font); | 
					
						
							|  |  |  |  |                     NPOI.SS.UserModel.ICellStyle cellStyle0 = workbook.CreateCellStyle(); | 
					
						
							|  |  |  |  |                     cellStyle0.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin; | 
					
						
							|  |  |  |  |                     cellStyle0.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin; | 
					
						
							|  |  |  |  |                     cellStyle0.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin; | 
					
						
							|  |  |  |  |                     cellStyle0.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; | 
					
						
							|  |  |  |  |                     cellStyle0.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; | 
					
						
							|  |  |  |  |                     cellStyle0.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; | 
					
						
							|  |  |  |  |                     var font0 = workbook.CreateFont(); | 
					
						
							|  |  |  |  |                     font0.FontHeightInPoints = 12; | 
					
						
							|  |  |  |  |                     font0.IsBold = true; | 
					
						
							|  |  |  |  |                     cellStyle0.SetFont(font0); | 
					
						
							| 
									
										
										
										
											2024-01-25 15:21:19 +08:00
										 |  |  |  |                     // 第二步:创建新数据行 | 
					
						
							| 
									
										
										
										
											2024-01-25 16:16:18 +08:00
										 |  |  |  |                     NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0); | 
					
						
							|  |  |  |  |                     NPOI.SS.UserModel.IRow row = sheet.GetRow(0); | 
					
						
							|  |  |  |  |                     NPOI.SS.UserModel.ICell cell; | 
					
						
							|  |  |  |  |                     cell = row.GetCell(0); | 
					
						
							|  |  |  |  |                     cell.CellStyle = cellStyle0; | 
					
						
							|  |  |  |  |                     cell.SetCellValue(projectName + "试车方案"); | 
					
						
							|  |  |  |  |                     var items = BLL.DriverPrepareSchemePlanItemService.GetSchemePlanItemByschemePlanId(plan.SchemePlanId); | 
					
						
							|  |  |  |  |                     int i = 2; | 
					
						
							|  |  |  |  |                     foreach (var item in items) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         // 第二步:创建新数据行 | 
					
						
							|  |  |  |  |                         row = sheet.CreateRow(i); | 
					
						
							|  |  |  |  |                         // 添加数据 | 
					
						
							|  |  |  |  |                         cell = row.CreateCell(0); | 
					
						
							|  |  |  |  |                         cell.CellStyle = cellStyle; | 
					
						
							|  |  |  |  |                         cell.SetCellValue((i - 1).ToString()); | 
					
						
							|  |  |  |  |                         cell = row.CreateCell(1); | 
					
						
							|  |  |  |  |                         cell.CellStyle = cellStyle; | 
					
						
							|  |  |  |  |                         cell.SetCellValue(item.SolutionName); | 
					
						
							|  |  |  |  |                         cell = row.CreateCell(2); | 
					
						
							|  |  |  |  |                         cell.CellStyle = cellStyle; | 
					
						
							| 
									
										
										
										
											2024-02-26 16:45:05 +08:00
										 |  |  |  |                         cell.SetCellValue(item.FileCode); | 
					
						
							| 
									
										
										
										
											2024-01-25 16:16:18 +08:00
										 |  |  |  |                         cell = row.CreateCell(3); | 
					
						
							|  |  |  |  |                         cell.CellStyle = cellStyle; | 
					
						
							| 
									
										
										
										
											2024-02-26 16:45:05 +08:00
										 |  |  |  |                         cell.SetCellValue(item.CompileMan); | 
					
						
							|  |  |  |  |                         cell = row.CreateCell(4); | 
					
						
							|  |  |  |  |                         cell.CellStyle = cellStyle; | 
					
						
							|  |  |  |  |                         string date = string.Empty; | 
					
						
							|  |  |  |  |                         if (item.PlanCompletedDate != null) | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             date = string.Format("{0:yyyy-MM-dd}", item.PlanCompletedDate); | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                         cell.SetCellValue(date); | 
					
						
							| 
									
										
										
										
											2024-01-25 16:16:18 +08:00
										 |  |  |  |                         i++; | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     // 第三步:写入文件流 | 
					
						
							|  |  |  |  |                     using (FileStream stream = new FileStream(newUrl, FileMode.Create, FileAccess.Write)) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         workbook.Write(stream); | 
					
						
							|  |  |  |  |                         workbook.Close(); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     string fileName = Path.GetFileName(newUrl); | 
					
						
							|  |  |  |  |                     FileInfo info = new FileInfo(newUrl); | 
					
						
							|  |  |  |  |                     long fileSize = info.Length; | 
					
						
							|  |  |  |  |                     Response.Clear(); | 
					
						
							|  |  |  |  |                     Response.ContentType = "application/x-zip-compressed"; | 
					
						
							|  |  |  |  |                     Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); | 
					
						
							|  |  |  |  |                     Response.AddHeader("Content-Length", fileSize.ToString()); | 
					
						
							|  |  |  |  |                     Response.TransmitFile(newUrl, 0, fileSize); | 
					
						
							|  |  |  |  |                     Response.Flush(); | 
					
						
							|  |  |  |  |                     Response.Close(); | 
					
						
							|  |  |  |  |                     File.Delete(newUrl); | 
					
						
							| 
									
										
										
										
											2024-01-25 15:21:19 +08:00
										 |  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2024-01-25 16:16:18 +08:00
										 |  |  |  |                 else | 
					
						
							| 
									
										
										
										
											2024-01-25 15:21:19 +08:00
										 |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2024-01-25 16:16:18 +08:00
										 |  |  |  |                     newUrl = uploadfilepath.Replace("2.xlsx", "(" + projectName + ")" + ".xlsx"); | 
					
						
							|  |  |  |  |                     File.Copy(uploadfilepath, newUrl); | 
					
						
							|  |  |  |  |                     // 第一步:读取文件流 | 
					
						
							|  |  |  |  |                     NPOI.SS.UserModel.IWorkbook workbook; | 
					
						
							|  |  |  |  |                     using (FileStream stream = new FileStream(newUrl, FileMode.Open, FileAccess.Read)) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         workbook = new NPOI.XSSF.UserModel.XSSFWorkbook(stream); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     // 创建单元格样式 | 
					
						
							|  |  |  |  |                     NPOI.SS.UserModel.ICellStyle cellStyle = workbook.CreateCellStyle(); | 
					
						
							|  |  |  |  |                     cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin; | 
					
						
							|  |  |  |  |                     cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin; | 
					
						
							|  |  |  |  |                     cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin; | 
					
						
							|  |  |  |  |                     cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; | 
					
						
							|  |  |  |  |                     cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; | 
					
						
							|  |  |  |  |                     cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; | 
					
						
							|  |  |  |  |                     var font = workbook.CreateFont(); | 
					
						
							|  |  |  |  |                     font.FontHeightInPoints = 11; | 
					
						
							|  |  |  |  |                     cellStyle.SetFont(font); | 
					
						
							|  |  |  |  |                     NPOI.SS.UserModel.ICellStyle cellStyle0 = workbook.CreateCellStyle(); | 
					
						
							|  |  |  |  |                     cellStyle0.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin; | 
					
						
							|  |  |  |  |                     cellStyle0.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin; | 
					
						
							|  |  |  |  |                     cellStyle0.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin; | 
					
						
							|  |  |  |  |                     cellStyle0.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; | 
					
						
							|  |  |  |  |                     cellStyle0.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; | 
					
						
							|  |  |  |  |                     cellStyle0.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; | 
					
						
							|  |  |  |  |                     var font0 = workbook.CreateFont(); | 
					
						
							|  |  |  |  |                     font0.FontHeightInPoints = 12; | 
					
						
							|  |  |  |  |                     font0.IsBold = true; | 
					
						
							|  |  |  |  |                     cellStyle0.SetFont(font0); | 
					
						
							|  |  |  |  |                     // 第二步:创建新数据行 | 
					
						
							|  |  |  |  |                     NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0); | 
					
						
							|  |  |  |  |                     NPOI.SS.UserModel.IRow row = sheet.GetRow(0); | 
					
						
							|  |  |  |  |                     NPOI.SS.UserModel.ICell cell; | 
					
						
							|  |  |  |  |                     cell = row.GetCell(0); | 
					
						
							|  |  |  |  |                     cell.CellStyle = cellStyle0; | 
					
						
							|  |  |  |  |                     cell.SetCellValue(projectName + "试车方案"); | 
					
						
							|  |  |  |  |                     var items = BLL.DriverPrepareSchemePlanItemService.GetSchemePlanItemByschemePlanId(plan.SchemePlanId); | 
					
						
							|  |  |  |  |                     int i = 2; | 
					
						
							|  |  |  |  |                     string type = string.Empty; | 
					
						
							|  |  |  |  |                     int firstRow = 2; | 
					
						
							|  |  |  |  |                     foreach (var item in items) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         if (string.IsNullOrEmpty(type)) | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             type = item.SolutionType; | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                         // 第二步:创建新数据行 | 
					
						
							|  |  |  |  |                         row = sheet.CreateRow(i); | 
					
						
							|  |  |  |  |                         // 添加数据 | 
					
						
							|  |  |  |  |                         cell = row.CreateCell(0); | 
					
						
							|  |  |  |  |                         cell.CellStyle = cellStyle; | 
					
						
							|  |  |  |  |                         cell.SetCellValue((i - 1).ToString()); | 
					
						
							|  |  |  |  |                         cell = row.CreateCell(1); | 
					
						
							|  |  |  |  |                         cell.CellStyle = cellStyle; | 
					
						
							|  |  |  |  |                         cell.SetCellValue(item.SolutionType); | 
					
						
							|  |  |  |  |                         cell = row.CreateCell(2); | 
					
						
							|  |  |  |  |                         cell.CellStyle = cellStyle; | 
					
						
							|  |  |  |  |                         cell.SetCellValue(item.SolutionName); | 
					
						
							|  |  |  |  |                         cell = row.CreateCell(3); | 
					
						
							|  |  |  |  |                         cell.CellStyle = cellStyle; | 
					
						
							| 
									
										
										
										
											2024-02-26 16:45:05 +08:00
										 |  |  |  |                         cell.SetCellValue(item.FileCode); | 
					
						
							| 
									
										
										
										
											2024-01-25 16:16:18 +08:00
										 |  |  |  |                         cell = row.CreateCell(4); | 
					
						
							|  |  |  |  |                         cell.CellStyle = cellStyle; | 
					
						
							| 
									
										
										
										
											2024-02-26 16:45:05 +08:00
										 |  |  |  |                         cell.SetCellValue(item.CompileMan); | 
					
						
							|  |  |  |  |                         cell = row.CreateCell(5); | 
					
						
							|  |  |  |  |                         cell.CellStyle = cellStyle; | 
					
						
							|  |  |  |  |                         string date = string.Empty; | 
					
						
							|  |  |  |  |                         if (item.PlanCompletedDate != null) | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             date = string.Format("{0:yyyy-MM-dd}", item.PlanCompletedDate); | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                         cell.SetCellValue(date); | 
					
						
							| 
									
										
										
										
											2024-01-25 16:16:18 +08:00
										 |  |  |  |                         if (type != item.SolutionType) | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             type = item.SolutionType; | 
					
						
							|  |  |  |  |                             sheet.AddMergedRegion(new CellRangeAddress(firstRow, i - 1, 1, 1)); | 
					
						
							|  |  |  |  |                             firstRow = i; | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                         else | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             if (i == 1 + items.Count) | 
					
						
							|  |  |  |  |                             { | 
					
						
							|  |  |  |  |                                 sheet.AddMergedRegion(new CellRangeAddress(firstRow, i, 1, 1)); | 
					
						
							|  |  |  |  |                             } | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                         i++; | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     // 第三步:写入文件流 | 
					
						
							|  |  |  |  |                     using (FileStream stream = new FileStream(newUrl, FileMode.Create, FileAccess.Write)) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         workbook.Write(stream); | 
					
						
							|  |  |  |  |                         workbook.Close(); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     string fileName = Path.GetFileName(newUrl); | 
					
						
							|  |  |  |  |                     FileInfo info = new FileInfo(newUrl); | 
					
						
							|  |  |  |  |                     long fileSize = info.Length; | 
					
						
							|  |  |  |  |                     Response.Clear(); | 
					
						
							|  |  |  |  |                     Response.ContentType = "application/x-zip-compressed"; | 
					
						
							|  |  |  |  |                     Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); | 
					
						
							|  |  |  |  |                     Response.AddHeader("Content-Length", fileSize.ToString()); | 
					
						
							|  |  |  |  |                     Response.TransmitFile(newUrl, 0, fileSize); | 
					
						
							|  |  |  |  |                     Response.Flush(); | 
					
						
							|  |  |  |  |                     Response.Close(); | 
					
						
							|  |  |  |  |                     File.Delete(newUrl); | 
					
						
							| 
									
										
										
										
											2024-01-25 15:21:19 +08:00
										 |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             else | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 Alert.ShowInTop("当前无记录,无法导出!", MessageBoxIcon.Warning); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							| 
									
										
										
										
											2024-02-26 16:45:05 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         protected void btnSave_Click(object sender, EventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             Model.SGGLDB db = Funs.DB; | 
					
						
							|  |  |  |  |             var items = from x in db.DriverPrepare_SchemePlanItem | 
					
						
							|  |  |  |  |                         join y in db.DriverPrepare_SchemePlan on x.SchemePlanId equals y.SchemePlanId | 
					
						
							|  |  |  |  |                         where y.ProjectId == this.CurrUser.LoginProjectId | 
					
						
							|  |  |  |  |                         select x; | 
					
						
							|  |  |  |  |             foreach (JObject mergedRow in Grid1.GetMergedData()) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 JObject values = mergedRow.Value<JObject>("values"); | 
					
						
							|  |  |  |  |                 int i = mergedRow.Value<int>("index"); | 
					
						
							|  |  |  |  |                 var item = items.FirstOrDefault(x => x.SchemePlanItemId == this.Grid1.Rows[i].DataKeys[0].ToString()); | 
					
						
							|  |  |  |  |                 if (item != null) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     item.FileCode = values.Value<string>("FileCode"); | 
					
						
							|  |  |  |  |                     item.CompileMan = values.Value<string>("CompileMan"); | 
					
						
							|  |  |  |  |                     item.PlanCompletedDate = Funs.GetNewDateTime(values.Value<string>("PlanCompletedDate")); | 
					
						
							|  |  |  |  |                     db.SubmitChanges(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             ShowNotify("保存成功!", MessageBoxIcon.Success); | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2024-01-25 15:21:19 +08:00
										 |  |  |  |     } | 
					
						
							|  |  |  |  | } |