| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  | using BLL; | 
					
						
							|  |  |  |  | using System; | 
					
						
							|  |  |  |  | using System.Collections.Generic; | 
					
						
							|  |  |  |  | using System.Data; | 
					
						
							|  |  |  |  | using System.Data.OleDb; | 
					
						
							|  |  |  |  | using System.IO; | 
					
						
							|  |  |  |  | using System.Linq; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | namespace FineUIPro.Web.HSSE.SitePerson | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     public partial class PersonInfoIn : PageBase | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         #region 定义变量 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 上传预设的虚拟路径 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         private string initPath = Const.ExcelUrl; | 
					
						
							| 
									
										
										
										
											2022-03-01 10:38:44 +08:00
										 |  |  |  |          | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 错误集合 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public static string errorInfos = string.Empty; | 
					
						
							| 
									
										
										
										
											2021-10-11 22:01:12 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 项目ID | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public string ProjectId | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             get | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 return (string)ViewState["ProjectId"]; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             set | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 ViewState["ProjectId"] = value; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 加载页面 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 加载页面 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="sender"></param> | 
					
						
							|  |  |  |  |         /// <param name="e"></param> | 
					
						
							|  |  |  |  |         protected void Page_Load(object sender, EventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             if (!IsPostBack) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 this.hdFileName.Text = string.Empty; | 
					
						
							|  |  |  |  |                 this.hdCheckResult.Text = string.Empty; | 
					
						
							| 
									
										
										
										
											2022-03-01 10:38:44 +08:00
										 |  |  |  |                 this.ProjectId = this.CurrUser.LoginProjectId;               | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |                 errorInfos = string.Empty; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 审核 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 审核 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="sender"></param> | 
					
						
							|  |  |  |  |         /// <param name="e"></param> | 
					
						
							|  |  |  |  |         protected void btnAudit_Click(object sender, EventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             try | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 if (this.fuAttachUrl.HasFile == false) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     ShowNotify("请您选择Excel文件!", MessageBoxIcon.Warning); | 
					
						
							|  |  |  |  |                     return; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 string IsXls = Path.GetExtension(this.fuAttachUrl.FileName).ToString().Trim().ToLower(); | 
					
						
							|  |  |  |  |                 if (IsXls != ".xls") | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     ShowNotify("只可以选择Excel文件!", MessageBoxIcon.Warning); | 
					
						
							|  |  |  |  |                     return; | 
					
						
							| 
									
										
										
										
											2022-03-01 10:38:44 +08:00
										 |  |  |  |                 }             | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |                 if (!string.IsNullOrEmpty(errorInfos)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     errorInfos = string.Empty; | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 string rootPath = Server.MapPath("~/"); | 
					
						
							|  |  |  |  |                 string initFullPath = rootPath + initPath; | 
					
						
							|  |  |  |  |                 if (!Directory.Exists(initFullPath)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     Directory.CreateDirectory(initFullPath); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 this.hdFileName.Text = BLL.Funs.GetNewFileName() + IsXls; | 
					
						
							|  |  |  |  |                 string filePath = initFullPath + this.hdFileName.Text; | 
					
						
							|  |  |  |  |                 this.fuAttachUrl.PostedFile.SaveAs(filePath); | 
					
						
							|  |  |  |  |                 ImportXlsToData(rootPath + initPath + this.hdFileName.Text); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             catch (Exception ex) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 ShowNotify("'" + ex.Message + "'", MessageBoxIcon.Warning); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 读Excel提取数据 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 从Excel提取数据--》Dataset | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="filename">Excel文件路径名</param> | 
					
						
							|  |  |  |  |         private void ImportXlsToData(string fileName) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             try | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 string oleDBConnString = String.Empty; | 
					
						
							|  |  |  |  |                 oleDBConnString = "Provider=Microsoft.Jet.OLEDB.4.0;"; | 
					
						
							|  |  |  |  |                 oleDBConnString += "Data Source="; | 
					
						
							|  |  |  |  |                 oleDBConnString += fileName; | 
					
						
							|  |  |  |  |                 oleDBConnString += ";Extended Properties=Excel 8.0;"; | 
					
						
							|  |  |  |  |                 OleDbConnection oleDBConn = null; | 
					
						
							|  |  |  |  |                 OleDbDataAdapter oleAdMaster = null; | 
					
						
							|  |  |  |  |                 DataTable m_tableName = new DataTable(); | 
					
						
							|  |  |  |  |                 DataSet ds = new DataSet(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 oleDBConn = new OleDbConnection(oleDBConnString); | 
					
						
							|  |  |  |  |                 oleDBConn.Open(); | 
					
						
							|  |  |  |  |                 m_tableName = oleDBConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 if (m_tableName != null && m_tableName.Rows.Count > 0) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                     m_tableName.TableName = m_tableName.Rows[0]["TABLE_NAME"].ToString().Trim(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 string sqlMaster; | 
					
						
							|  |  |  |  |                 sqlMaster = " SELECT *  FROM [" + m_tableName.TableName + "]"; | 
					
						
							|  |  |  |  |                 oleAdMaster = new OleDbDataAdapter(sqlMaster, oleDBConn); | 
					
						
							|  |  |  |  |                 oleAdMaster.Fill(ds, "m_tableName"); | 
					
						
							|  |  |  |  |                 oleAdMaster.Dispose(); | 
					
						
							|  |  |  |  |                 oleDBConn.Close(); | 
					
						
							|  |  |  |  |                 oleDBConn.Dispose(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-21 10:53:31 +08:00
										 |  |  |  |                 AddDatasetToSQL(ds.Tables[0]); | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |             } | 
					
						
							|  |  |  |  |             catch (Exception ex) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 throw ex; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 将Dataset的数据导入数据库 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 将Dataset的数据导入数据库 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="pds">数据集</param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							| 
									
										
										
										
											2021-08-21 10:53:31 +08:00
										 |  |  |  |         private bool AddDatasetToSQL(DataTable pds) | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |         { | 
					
						
							|  |  |  |  |             string result = string.Empty; | 
					
						
							| 
									
										
										
										
											2021-08-21 10:53:31 +08:00
										 |  |  |  |             int   ir = pds.Rows.Count; | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |             if (pds != null && ir > 0) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 var units = from x in Funs.DB.Base_Unit select x; | 
					
						
							| 
									
										
										
										
											2021-10-11 22:01:12 +08:00
										 |  |  |  |                 var sitePersons = from x in Funs.DB.SitePerson_Person | 
					
						
							| 
									
										
										
										
											2022-03-01 10:38:44 +08:00
										 |  |  |  |                                   where x.ProjectId ==  this.ProjectId | 
					
						
							|  |  |  |  |                                   select x; | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |                 for (int i = 0; i < ir; i++) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     string col0 = pds.Rows[i][0].ToString().Trim(); | 
					
						
							| 
									
										
										
										
											2021-08-21 10:53:31 +08:00
										 |  |  |  |                     string col1 = pds.Rows[i][1].ToString().Trim(); | 
					
						
							|  |  |  |  |                     string col2 = pds.Rows[i][2].ToString().Trim(); | 
					
						
							|  |  |  |  |                     string col3 = pds.Rows[i][3].ToString().Trim(); | 
					
						
							|  |  |  |  |                     string col4 = pds.Rows[i][4].ToString().Trim(); | 
					
						
							|  |  |  |  |                     if (!string.IsNullOrEmpty(col2) && !string.IsNullOrEmpty(col3) && !string.IsNullOrEmpty(col4)) | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |                     { | 
					
						
							| 
									
										
										
										
											2021-08-21 10:53:31 +08:00
										 |  |  |  |                         if (!string.IsNullOrEmpty(col0)) | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |                         { | 
					
						
							| 
									
										
										
										
											2021-08-21 10:53:31 +08:00
										 |  |  |  |                             var unit = units.FirstOrDefault(e => e.UnitName == col0); | 
					
						
							|  |  |  |  |                             if (unit != null) | 
					
						
							|  |  |  |  |                             { | 
					
						
							| 
									
										
										
										
											2021-10-11 22:01:12 +08:00
										 |  |  |  |                                 var projectUnit = Funs.DB.Project_ProjectUnit.FirstOrDefault(x => x.ProjectId ==  this.ProjectId && x.UnitId == unit.UnitId); | 
					
						
							| 
									
										
										
										
											2021-08-21 10:53:31 +08:00
										 |  |  |  |                                 if (projectUnit == null) | 
					
						
							|  |  |  |  |                                 { | 
					
						
							|  |  |  |  |                                     result += "第" + (i + 2).ToString() + "行," + "单位" + "," + "[" + col0 + "]不在本项目中!" + "|"; | 
					
						
							|  |  |  |  |                                 } | 
					
						
							|  |  |  |  |                             } | 
					
						
							|  |  |  |  |                             else | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |                             { | 
					
						
							| 
									
										
										
										
											2021-08-21 10:53:31 +08:00
										 |  |  |  |                                 result += "第" + (i + 2).ToString() + "行," + "单位" + "," + "[" + col0 + "]不在单位表中!" + "|"; | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |                             } | 
					
						
							|  |  |  |  |                         } | 
					
						
							| 
									
										
										
										
											2022-03-04 16:15:21 +08:00
										 |  |  |  |                          | 
					
						
							| 
									
										
										
										
											2021-08-21 10:53:31 +08:00
										 |  |  |  |                         if (!string.IsNullOrEmpty(col2)) | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |                         { | 
					
						
							| 
									
										
										
										
											2021-08-21 10:53:31 +08:00
										 |  |  |  |                             var person = sitePersons.FirstOrDefault(e => e.IdentityCard == col2); | 
					
						
							|  |  |  |  |                             if (person == null) | 
					
						
							|  |  |  |  |                             { | 
					
						
							|  |  |  |  |                                 result += "第" + (i + 2).ToString() + "行," + "身份证号码" + "," + "[" + col2 + "]错误!" + "|"; | 
					
						
							|  |  |  |  |                             } | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |                         } | 
					
						
							| 
									
										
										
										
											2021-08-21 10:53:31 +08:00
										 |  |  |  |                         else | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |                         { | 
					
						
							| 
									
										
										
										
											2022-03-04 16:15:21 +08:00
										 |  |  |  |                             if (!string.IsNullOrEmpty(col1)) | 
					
						
							|  |  |  |  |                             { | 
					
						
							|  |  |  |  |                                 var person = sitePersons.FirstOrDefault(e => e.PersonName == col1); | 
					
						
							|  |  |  |  |                                 if (person == null) | 
					
						
							|  |  |  |  |                                 { | 
					
						
							|  |  |  |  |                                     result += "第" + (i + 2).ToString() + "行," + "姓名" + "," + "[" + col1 + "]不在人员信息表中!" + "|"; | 
					
						
							|  |  |  |  |                                 } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                                 var personOut = sitePersons.FirstOrDefault(e => e.PersonName == col1 && (!e.OutTime.HasValue || e.OutTime > DateTime.Now)); | 
					
						
							|  |  |  |  |                                 if (personOut == null) | 
					
						
							|  |  |  |  |                                 { | 
					
						
							|  |  |  |  |                                     result += "第" + (i + 2).ToString() + "行," + "姓名" + "," + "[" + col1 + "]不在岗!" + "|"; | 
					
						
							|  |  |  |  |                                 } | 
					
						
							|  |  |  |  |                             } | 
					
						
							|  |  |  |  |                             else | 
					
						
							|  |  |  |  |                             { | 
					
						
							|  |  |  |  |                                 result += "第" + (i + 2).ToString() + "行," + "身份证号码/姓名" + "," + "不能都为空!" + "|"; | 
					
						
							|  |  |  |  |                             } | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |                         } | 
					
						
							| 
									
										
										
										
											2022-03-04 16:15:21 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-21 10:53:31 +08:00
										 |  |  |  |                         if (!string.IsNullOrEmpty(col3)) | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |                         { | 
					
						
							| 
									
										
										
										
											2021-08-21 10:53:31 +08:00
										 |  |  |  |                             if (col3 != "进" && col3 != "出") | 
					
						
							|  |  |  |  |                             { | 
					
						
							|  |  |  |  |                                 result += "第" + (i + 2).ToString() + "行," + "进/出" + "," + "[" + col3 + "]错误!" + "|"; | 
					
						
							|  |  |  |  |                             } | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |                         } | 
					
						
							| 
									
										
										
										
											2021-08-21 10:53:31 +08:00
										 |  |  |  |                         if (!string.IsNullOrEmpty(col4)) | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |                         { | 
					
						
							| 
									
										
										
										
											2021-08-21 10:53:31 +08:00
										 |  |  |  |                             try | 
					
						
							|  |  |  |  |                             { | 
					
						
							|  |  |  |  |                                 DateTime inToOutTime = Convert.ToDateTime(col4); | 
					
						
							|  |  |  |  |                             } | 
					
						
							| 
									
										
										
										
											2022-05-07 15:12:59 +08:00
										 |  |  |  |                             catch (Exception ex) | 
					
						
							| 
									
										
										
										
											2021-08-21 10:53:31 +08:00
										 |  |  |  |                             { | 
					
						
							|  |  |  |  |                                 result += "第" + (i + 2).ToString() + "行," + "时间" + "," + "[" + col4 + "]错误!" + "|"; | 
					
						
							|  |  |  |  |                             } | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |                         } | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(result)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     result = result.Substring(0, result.LastIndexOf("|")); | 
					
						
							|  |  |  |  |                     errorInfos = result; | 
					
						
							|  |  |  |  |                     Alert alert = new Alert | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         Message = result, | 
					
						
							|  |  |  |  |                         Target = Target.Self | 
					
						
							|  |  |  |  |                     }; | 
					
						
							|  |  |  |  |                     alert.Show(); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     errorInfos = string.Empty; | 
					
						
							|  |  |  |  |                     ShowNotify("审核完成,请点击导入!", MessageBoxIcon.Success); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             else | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 ShowNotify("导入数据为空!", MessageBoxIcon.Warning); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             return true; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 导入 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 导入 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="sender"></param> | 
					
						
							|  |  |  |  |         /// <param name="e"></param> | 
					
						
							|  |  |  |  |         protected void btnImport_Click(object sender, EventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             if (string.IsNullOrEmpty(errorInfos)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 if (!string.IsNullOrEmpty(this.hdFileName.Text)) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     string rootPath = Server.MapPath("~/"); | 
					
						
							|  |  |  |  |                     ImportXlsToData2(rootPath + initPath + this.hdFileName.Text); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     ShowNotify("请先审核要导入的文件!", MessageBoxIcon.Warning); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             else | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 Alert.ShowInTop("请先将错误数据修正,再重新导入保存!", MessageBoxIcon.Warning); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region Excel提取数据 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 从Excel提取数据--》Dataset | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="filename">Excel文件路径名</param> | 
					
						
							|  |  |  |  |         private void ImportXlsToData2(string fileName) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             try | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 string oleDBConnString = String.Empty; | 
					
						
							|  |  |  |  |                 oleDBConnString = "Provider=Microsoft.Jet.OLEDB.4.0;"; | 
					
						
							|  |  |  |  |                 oleDBConnString += "Data Source="; | 
					
						
							|  |  |  |  |                 oleDBConnString += fileName; | 
					
						
							|  |  |  |  |                 oleDBConnString += ";Extended Properties=Excel 8.0;"; | 
					
						
							|  |  |  |  |                 OleDbConnection oleDBConn = null; | 
					
						
							|  |  |  |  |                 OleDbDataAdapter oleAdMaster = null; | 
					
						
							|  |  |  |  |                 DataTable m_tableName = new DataTable(); | 
					
						
							|  |  |  |  |                 DataSet ds = new DataSet(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 oleDBConn = new OleDbConnection(oleDBConnString); | 
					
						
							|  |  |  |  |                 oleDBConn.Open(); | 
					
						
							|  |  |  |  |                 m_tableName = oleDBConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 if (m_tableName != null && m_tableName.Rows.Count > 0) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                     m_tableName.TableName = m_tableName.Rows[0]["TABLE_NAME"].ToString().Trim(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 string sqlMaster; | 
					
						
							|  |  |  |  |                 sqlMaster = " SELECT *  FROM [" + m_tableName.TableName + "]"; | 
					
						
							|  |  |  |  |                 oleAdMaster = new OleDbDataAdapter(sqlMaster, oleDBConn); | 
					
						
							|  |  |  |  |                 oleAdMaster.Fill(ds, "m_tableName"); | 
					
						
							|  |  |  |  |                 oleAdMaster.Dispose(); | 
					
						
							|  |  |  |  |                 oleDBConn.Close(); | 
					
						
							|  |  |  |  |                 oleDBConn.Dispose(); | 
					
						
							| 
									
										
										
										
											2022-06-01 14:27:42 +08:00
										 |  |  |  |                 var isok = AddDatasetToSQL2(ds.Tables[0]); | 
					
						
							|  |  |  |  |                 if (isok) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); | 
					
						
							|  |  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |             } | 
					
						
							|  |  |  |  |             catch (Exception ex) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 throw ex; | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							| 
									
										
										
										
											2022-06-01 14:27:42 +08:00
										 |  |  |  |         ///// <summary> | 
					
						
							|  |  |  |  |         ///// 人员考勤集合 | 
					
						
							|  |  |  |  |         ///// </summary> | 
					
						
							|  |  |  |  |         //public static List<Model.View_SitePerson_Checking> viewCheckings = new List<Model.View_SitePerson_Checking>(); | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 将Dataset的数据导入数据库 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 将Dataset的数据导入数据库 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="pds">数据集</param> | 
					
						
							|  |  |  |  |         /// <param name="Cols">数据集列数</param> | 
					
						
							|  |  |  |  |         /// <returns></returns> | 
					
						
							| 
									
										
										
										
											2021-08-21 10:53:31 +08:00
										 |  |  |  |         private bool AddDatasetToSQL2(DataTable pds) | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2022-06-01 14:27:42 +08:00
										 |  |  |  |             List<Model.SitePerson_Checking> newCheckings = new List<Model.SitePerson_Checking>(); | 
					
						
							| 
									
										
										
										
											2021-08-21 10:53:31 +08:00
										 |  |  |  |             int ir = pds.Rows.Count; | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |             if (pds != null && ir > 0) | 
					
						
							| 
									
										
										
										
											2022-03-01 10:38:44 +08:00
										 |  |  |  |             {                 | 
					
						
							|  |  |  |  |                 var sitePersons = from x in Funs.DB.SitePerson_Person | 
					
						
							|  |  |  |  |                                   where x.ProjectId ==  this.ProjectId && !x.OutTime.HasValue | 
					
						
							|  |  |  |  |                                   select x; | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |                 for (int i = 0; i < ir; i++) | 
					
						
							|  |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2021-08-21 10:53:31 +08:00
										 |  |  |  |                     string col0 = pds.Rows[i][0].ToString().Trim(); | 
					
						
							|  |  |  |  |                     string col1 = pds.Rows[i][1].ToString().Trim(); | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |                     string col2 = pds.Rows[i][2].ToString().Trim(); | 
					
						
							| 
									
										
										
										
											2021-08-21 10:53:31 +08:00
										 |  |  |  |                     string col3 = pds.Rows[i][3].ToString().Trim(); | 
					
						
							|  |  |  |  |                     string col4 = pds.Rows[i][4].ToString().Trim(); | 
					
						
							|  |  |  |  |                     if (!string.IsNullOrEmpty(col2) && !string.IsNullOrEmpty(col3) && !string.IsNullOrEmpty(col4)) | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |                     { | 
					
						
							| 
									
										
										
										
											2022-06-01 14:27:42 +08:00
										 |  |  |  |                         Model.SitePerson_Checking newChecking = new Model.SitePerson_Checking | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |                         { | 
					
						
							| 
									
										
										
										
											2021-08-21 10:53:31 +08:00
										 |  |  |  |                             UnitName = col0, | 
					
						
							|  |  |  |  |                             PersonName = col1, | 
					
						
							|  |  |  |  |                             IdentityCard = col2, | 
					
						
							|  |  |  |  |                             IntoOut = col3 == "进" ? "1" : "0", | 
					
						
							|  |  |  |  |                             IntoOutTime = Convert.ToDateTime(col4) | 
					
						
							|  |  |  |  |                         }; | 
					
						
							| 
									
										
										
										
											2022-06-01 14:27:42 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |                         var person = sitePersons.FirstOrDefault(x => x.IdentityCard == newChecking.IdentityCard); | 
					
						
							| 
									
										
										
										
											2021-08-21 10:53:31 +08:00
										 |  |  |  |                         if (person != null) | 
					
						
							|  |  |  |  |                         { | 
					
						
							| 
									
										
										
										
											2022-06-01 14:27:42 +08:00
										 |  |  |  |                             newChecking.ProjectId = person.ProjectId; | 
					
						
							|  |  |  |  |                             newChecking.UnitId = person.UnitId; | 
					
						
							|  |  |  |  |                             newChecking.PersonId = person.PersonId; | 
					
						
							|  |  |  |  |                             newChecking.CardNo = person.CardNo; | 
					
						
							|  |  |  |  |                             newChecking.PersonName = person.PersonName; | 
					
						
							|  |  |  |  |                             newChecking.WorkAreaId = person.WorkAreaId; | 
					
						
							|  |  |  |  |                             if (!string.IsNullOrEmpty(person.WorkAreaId)) | 
					
						
							|  |  |  |  |                             { | 
					
						
							|  |  |  |  |                                 newChecking.WorkAreaName = UnitWorkService.GetUnitWorkName(person.WorkAreaId); | 
					
						
							|  |  |  |  |                             } | 
					
						
							|  |  |  |  |                             newChecking.CheckingId = SQLHelper.GetNewID(); | 
					
						
							|  |  |  |  |                             newCheckings.Add(newChecking); | 
					
						
							|  |  |  |  |                         | 
					
						
							|  |  |  |  |                             BLL.SitePerson_CheckingService.AddPersonInfo(newChecking); | 
					
						
							| 
									
										
										
										
											2022-03-01 10:38:44 +08:00
										 |  |  |  |                         }                        | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2022-06-01 14:27:42 +08:00
										 |  |  |  |                 if (newCheckings.Count > 0) | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |                 { | 
					
						
							|  |  |  |  |                     this.Grid1.Hidden = false; | 
					
						
							| 
									
										
										
										
											2022-06-01 14:27:42 +08:00
										 |  |  |  |                     this.Grid1.DataSource = newCheckings; | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |                     this.Grid1.DataBind(); | 
					
						
							| 
									
										
										
										
											2022-06-01 14:27:42 +08:00
										 |  |  |  |                     ShowNotify("导入成功!", MessageBoxIcon.Success); | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |             else | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 ShowNotify("导入数据为空!", MessageBoxIcon.Warning); | 
					
						
							|  |  |  |  |             } | 
					
						
							| 
									
										
										
										
											2022-06-01 14:27:42 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |             string rootPath = Server.MapPath("~/"); | 
					
						
							|  |  |  |  |             string initFullPath = rootPath + initPath; | 
					
						
							|  |  |  |  |             string filePath = initFullPath + this.hdFileName.Text; | 
					
						
							|  |  |  |  |             if (filePath != string.Empty && System.IO.File.Exists(filePath)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 File.Delete(filePath);//删除上传的XLS文件 | 
					
						
							|  |  |  |  |             }            | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |             return true; | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 保存 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 保存 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="sender"></param> | 
					
						
							|  |  |  |  |         /// <param name="e"></param> | 
					
						
							|  |  |  |  |         protected void btnSave_Click(object sender, EventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2022-06-01 14:27:42 +08:00
										 |  |  |  |             //if (string.IsNullOrEmpty(errorInfos)) | 
					
						
							|  |  |  |  |             //{ | 
					
						
							|  |  |  |  |             //    foreach (var item in viewCheckings) | 
					
						
							|  |  |  |  |             //    { | 
					
						
							|  |  |  |  |             //        var getCheck = Funs.DB.SitePerson_Checking.FirstOrDefault(x => x.CheckingId == item.CheckingId); | 
					
						
							|  |  |  |  |             //        if (getCheck == null) | 
					
						
							|  |  |  |  |             //        { | 
					
						
							|  |  |  |  |             //            Model.SitePerson_Checking newChecking = new Model.SitePerson_Checking | 
					
						
							|  |  |  |  |             //            { | 
					
						
							|  |  |  |  |             //                CheckingId = item.CheckingId, | 
					
						
							|  |  |  |  |             //                ProjectId = item.ProjectId, | 
					
						
							|  |  |  |  |             //                IdentityCard = item.IdentityCard, | 
					
						
							|  |  |  |  |             //                IntoOutTime = item.IntoOutTime, | 
					
						
							|  |  |  |  |             //                IntoOut = item.IntoOut, | 
					
						
							|  |  |  |  |             //                PersonId = item.PersonId | 
					
						
							|  |  |  |  |             //            }; | 
					
						
							|  |  |  |  |             //            BLL.SitePerson_CheckingService.AddPersonInfo(newChecking); | 
					
						
							|  |  |  |  |             //        } | 
					
						
							|  |  |  |  |             //    } | 
					
						
							|  |  |  |  |             //    string rootPath = Server.MapPath("~/"); | 
					
						
							|  |  |  |  |             //    string initFullPath = rootPath + initPath; | 
					
						
							|  |  |  |  |             //    string filePath = initFullPath + this.hdFileName.Text; | 
					
						
							|  |  |  |  |             //    if (filePath != string.Empty && System.IO.File.Exists(filePath)) | 
					
						
							|  |  |  |  |             //    { | 
					
						
							|  |  |  |  |             //        File.Delete(filePath);//删除上传的XLS文件 | 
					
						
							|  |  |  |  |             //    } | 
					
						
							|  |  |  |  |             //    ShowNotify("导入成功!", MessageBoxIcon.Success); | 
					
						
							|  |  |  |  |             //    PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); | 
					
						
							|  |  |  |  |             //} | 
					
						
							|  |  |  |  |             //else | 
					
						
							|  |  |  |  |             //{ | 
					
						
							|  |  |  |  |             //    Alert.ShowInTop("请先将错误数据修正,再重新导入保存!", MessageBoxIcon.Warning); | 
					
						
							|  |  |  |  |             //} | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion         | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 下载模板 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 下载模板按钮 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="sender"></param> | 
					
						
							|  |  |  |  |         /// <param name="e"></param> | 
					
						
							|  |  |  |  |         protected void btnDownLoad_Click(object sender, EventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             PageContext.RegisterStartupScript(Confirm.GetShowReference("确定下载导入模板吗?", String.Empty, MessageBoxIcon.Question, PageManager1.GetCustomEventReference(false, "Confirm_OK"), PageManager1.GetCustomEventReference("Confirm_Cancel"))); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 下载导入模板 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="sender"></param> | 
					
						
							|  |  |  |  |         /// <param name="e"></param> | 
					
						
							|  |  |  |  |         protected void PageManager1_CustomEvent(object sender, CustomEventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             if (e.EventArgument == "Confirm_OK") | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 string rootPath = Server.MapPath("~/"); | 
					
						
							|  |  |  |  |                 string uploadfilepath = rootPath + Const.PersonInfoTemplateUrl; | 
					
						
							|  |  |  |  |                 string filePath = Const.PersonInfoTemplateUrl; | 
					
						
							|  |  |  |  |                 string fileName = Path.GetFileName(filePath); | 
					
						
							|  |  |  |  |                 FileInfo info = new FileInfo(uploadfilepath); | 
					
						
							|  |  |  |  |                 long fileSize = info.Length; | 
					
						
							|  |  |  |  |                 Response.ClearContent(); | 
					
						
							|  |  |  |  |                 Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); | 
					
						
							|  |  |  |  |                 Response.ContentType = "excel/plain"; | 
					
						
							|  |  |  |  |                 Response.ContentEncoding = System.Text.Encoding.UTF8; | 
					
						
							|  |  |  |  |                 Response.AddHeader("Content-Length", fileSize.ToString().Trim()); | 
					
						
							|  |  |  |  |                 Response.TransmitFile(uploadfilepath, 0, fileSize); | 
					
						
							|  |  |  |  |                 Response.End(); | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2021-08-13 11:15:59 +08:00
										 |  |  |  |         #endregion         | 
					
						
							| 
									
										
										
										
											2021-07-26 11:08:59 +08:00
										 |  |  |  |     } | 
					
						
							|  |  |  |  | } |