private void CheckData_DataTable() { Class_Welder myClass_Welder; string str_ErrMessage; foreach (DataRow myDataRow in this.myDataTable.Rows) { myDataRow["ErrMessage"] = ""; str_ErrMessage = ""; myClass_Welder = new Class_Welder(); myClass_Welder.IdentificationCard = myDataRow["IdentificationCard"].ToString().Trim(); myClass_Welder.WelderName = myDataRow["WelderName"].ToString().Trim(); myClass_Welder.Schooling = myDataRow["Schooling"].ToString().Trim(); myClass_Welder.Sex = myDataRow["Sex"].ToString().Trim(); DateTime.TryParse(myDataRow["WeldingBeginning"].ToString().Trim(), out myClass_Welder.WeldingBeginning); myClass_Welder.myClass_BelongUnit.WorkerID = myDataRow["WelderBelongWorkerID"].ToString().Trim(); //myClass_Welder.myClass_BelongUnit.EmployerHPID = Class_Employer.GetEmployerHPID(myDataRow["WelderBelongEmployer"].ToString()); myClass_Welder.myClass_BelongUnit.EmployerHPID = Class_Employer.GetEmployerHPIDbyDataTable(myDataRow["WelderBelongEmployer"].ToString().Trim()); myDataRow["WelderBelongEmployerHPID"] = myClass_Welder.myClass_BelongUnit.EmployerHPID; if (string.IsNullOrEmpty(myClass_Welder.myClass_BelongUnit.EmployerHPID)) { str_ErrMessage = "公司数据有误!"; } else { if (!string.IsNullOrEmpty(myDataRow["WelderBelongDepartment"].ToString())) { //myClass_Welder.myClass_BelongUnit.DepartmentHPID = Class_Department.GetDepartmentHPID(myClass_Welder.myClass_BelongUnit.EmployerHPID, myDataRow["WelderBelongDepartment"].ToString()); myClass_Welder.myClass_BelongUnit.DepartmentHPID = Class_Department.GetDepartmentHPIDbyDataTable(myClass_Welder.myClass_BelongUnit.EmployerHPID, myDataRow["WelderBelongDepartment"].ToString().Trim()); myDataRow["WelderBelongDepartmentHPID"] = myClass_Welder.myClass_BelongUnit.DepartmentHPID; if (string.IsNullOrEmpty(myClass_Welder.myClass_BelongUnit.DepartmentHPID)) { str_ErrMessage = "部门数据有误!"; } else { if (!string.IsNullOrEmpty(myDataRow["WelderBelongWorkPlace"].ToString())) { //myClass_Welder.myClass_BelongUnit.WorkPlaceHPID = Class_WorkPlace.GetWorkPlaceHPID(myClass_Welder.myClass_BelongUnit.DepartmentHPID, myDataRow["WelderBelongWorkPlace"].ToString()); myClass_Welder.myClass_BelongUnit.WorkPlaceHPID = Class_WorkPlace.GetWorkPlaceHPIDbyDataTable(myClass_Welder.myClass_BelongUnit.DepartmentHPID, myDataRow["WelderBelongWorkPlace"].ToString().Trim()); myDataRow["WelderBelongWorkPlaceHPID"] = myClass_Welder.myClass_BelongUnit.WorkPlaceHPID; if (string.IsNullOrEmpty(myClass_Welder.myClass_BelongUnit.WorkPlaceHPID)) { str_ErrMessage = "作业区数据有误!"; } } } } if (!string.IsNullOrEmpty(myDataRow["WelderBelongLaborServiceTeam"].ToString())) { //myClass_Welder.myClass_BelongUnit.LaborServiceTeamHPID = Class_LaborServiceTeam.GetLaborServiceTeamHPID(myClass_Welder.myClass_BelongUnit.EmployerHPID, myDataRow["WelderBelongLaborServiceTeam"].ToString()); myClass_Welder.myClass_BelongUnit.LaborServiceTeamHPID = Class_LaborServiceTeam.GetLaborServiceTeamHPIDbyDataTable(myClass_Welder.myClass_BelongUnit.EmployerHPID, myDataRow["WelderBelongLaborServiceTeam"].ToString().Trim()); myDataRow["WelderBelongLaborServiceTeamHPID"] = myClass_Welder.myClass_BelongUnit.LaborServiceTeamHPID; if (string.IsNullOrEmpty(myClass_Welder.myClass_BelongUnit.LaborServiceTeamHPID)) { str_ErrMessage = "劳务队数据有误!"; } } } if (!string.IsNullOrEmpty(str_ErrMessage)) { myDataRow["ErrMessage"] = str_ErrMessage; continue; } else { str_ErrMessage = myClass_Welder.CheckField(); if (!string.IsNullOrEmpty(str_ErrMessage)) { myDataRow["ErrMessage"] = str_ErrMessage; continue; } string str_WelderName_Temp = Class_Welder.GetWelderName(myClass_Welder.IdentificationCard); if (!string.IsNullOrEmpty(str_WelderName_Temp) && str_WelderName_Temp != myClass_Welder.WelderName) { myDataRow["ErrMessage"] = "姓名与数据库中该焊工不符!"; continue; } } if (!Class_Schooling.ExistAndCanDeleteAndDelete(myClass_Welder.Schooling, Enum_zwjKindofUpdate.Exist)) { myDataRow["ErrMessage"] = "学历有误!"; continue; } if (!string.IsNullOrEmpty(this.str_WorkPlaceHPID)) { if (myClass_Welder.myClass_BelongUnit.WorkPlaceHPID != this.str_WorkPlaceHPID) { myDataRow["ErrMessage"] = "作业区超出导入数据范围,请重新选择导入单位!"; continue; } } else { if (!string.IsNullOrEmpty(this.str_DepartmentHPID)) { if (myClass_Welder.myClass_BelongUnit.DepartmentHPID != this.str_DepartmentHPID) { myDataRow["ErrMessage"] = "部门超出导入数据范围,请重新选择导入单位!"; continue; } } else { if (!string.IsNullOrEmpty(this.str_EmployerHPID)) { if (myClass_Welder.myClass_BelongUnit.EmployerHPID != this.str_EmployerHPID) { myDataRow["ErrMessage"] = "公司超出导入数据范围,请重新选择导入单位!"; continue; } } } } //if (Class_WelderBelong.GetWelderBelong(myClass_Welder.IdentificationCard, this.str_EmployerHPID, this.str_DepartmentHPID, this.str_WorkPlaceHPID).Rows.Count > 1) //{ // myDataRow["ErrMessage"] = "数据库中该单位下该焊工有两条记录!"; // continue; //} //if (Class_WelderBelong.GetWelderBelong(myClass_Welder.IdentificationCard, this.str_EmployerHPID, this.str_DepartmentHPID, this.str_WorkPlaceHPID).Rows.Count > 0) //{ // myDataRow["ErrMessage"] = "数据库中该单位下已存在该焊工!"; // continue; //} } }
private void toolStripMenuItem_RowSynchronizationhdhr_Click(object sender, EventArgs e) { if (MessageBox.Show("确认同步用友数据吗?", "确认窗口", MessageBoxButtons.OKCancel) != DialogResult.OK) { return; } string str_SQL = "SELECT docname FROM [hdhr].[dbo].[v_defdoc_xueli]"; SqlDataAdapter myAdapter = new SqlDataAdapter(str_SQL, Properties.Settings.Default.zwjConnhdhr); DataTable myDataTable_xueli = new DataTable(); myAdapter.Fill(myDataTable_xueli); Class_Schooling myClass_Schooling = new Class_Schooling(); foreach (DataRow myDataRow in myDataTable_xueli.Rows) { if (!Class_Schooling.ExistAndCanDeleteAndDelete(myDataRow["docname"].ToString(), Enum_zwjKindofUpdate.Exist)) { myClass_Schooling.Schooling = myDataRow["docname"].ToString(); myClass_Schooling.AddAndModify(Enum_zwjKindofUpdate.Add); } } str_SQL = "SELECT [ryid],[ryxm],[ryxb],[xlmc],[rygh],[jcrq],[gsmc],[bmmc],[kscj],[lwgs] FROM [hdhr].[dbo].[v_psninfo_to_hangong]"; Class_KindofEmployer myClass_KindofEmployer = new Class_KindofEmployer(this.myEventArgs_KindofEmployer.str_KindofEmployer); Class_Employer myClass_Employer = new Class_Employer(myClass_KindofEmployer.KindofEmployerEmployerHPID); Class_Department myClass_Department = new Class_Department(myClass_KindofEmployer.KindofEmployerDepartmentHPID); Class_WorkPlace myClass_WorkPlace = new Class_WorkPlace(myClass_KindofEmployer.KindofEmployerWorkPlaceHPID); switch (myClass_KindofEmployer.KindofEmployerLevel) { case 1: str_SQL += string.Format(" where gsmc='{0}'", myClass_Employer.Employer); break; case 2: str_SQL += string.Format(" where gsmc='{0}' and bmmc='{1}'", myClass_Employer.Employer, myClass_Department.Department); break; case 3: str_SQL += string.Format(" where gsmc='{0}' and bmmc='{1}' and kscj='{2}'", myClass_Employer.Employer, myClass_Department.Department, myClass_WorkPlace.WorkPlace); break; default: return; } myAdapter = new SqlDataAdapter(str_SQL, Properties.Settings.Default.zwjConnhdhr); DataTable myDataTable_hdhrhangong = new DataTable(); myAdapter.Fill(myDataTable_hdhrhangong); Class_KindofEmployerWelder myClass_KindofEmployerWelder = new Class_KindofEmployerWelder(); myClass_KindofEmployerWelder.KindofEmployer = myClass_KindofEmployer.KindofEmployer; string str_Err; int i_success = 0; int i_success_add = 0; int i_success_modify = 0; int i_success_delete = 0; int i_fail = 0; StringBuilder myStringBuilder_err = new StringBuilder(); foreach (DataRow myDataRow in this.myDataTable.Rows) { if (myDataTable_hdhrhangong.Select(string.Format("ryid='{0}'", myDataRow["IdentificationCard"])).GetLength(0) == 0) { Class_KindofEmployerWelder.ExistAndCanDeleteAndDelete((int)myDataRow["KindofEmployerWelderID"], Enum_zwjKindofUpdate.Delete); i_success_delete++; } } foreach (DataRow myDataRow in myDataTable_hdhrhangong.Rows) { myClass_KindofEmployerWelder.IdentificationCard = myDataRow["ryid"].ToString(); myClass_KindofEmployerWelder.WelderName = myDataRow["ryxm"].ToString(); myClass_KindofEmployerWelder.Sex = myDataRow["ryxb"].ToString(); myClass_KindofEmployerWelder.Schooling = myDataRow["xlmc"].ToString(); if (!DateTime.TryParse(myDataRow["jcrq"].ToString(), out myClass_KindofEmployerWelder.WeldingBeginning)) { myClass_KindofEmployerWelder.WeldingBeginning = DateTime.Now; } myClass_KindofEmployerWelder.myClass_BelongUnit.WorkerID = myDataRow["rygh"].ToString(); myClass_KindofEmployerWelder.myClass_BelongUnit.EmployerHPID = Class_Employer.GetEmployerHPID(myDataRow["gsmc"].ToString()); if (string.IsNullOrEmpty(myClass_KindofEmployerWelder.myClass_BelongUnit.EmployerHPID)) { i_fail++; myStringBuilder_err.Append(string.Format("\n身份证号码:{0}, 错误信息:公司名称不符", myClass_KindofEmployerWelder.IdentificationCard)); continue; } else { myClass_KindofEmployerWelder.myClass_BelongUnit.DepartmentHPID = Class_Department.GetDepartmentHPID(myClass_KindofEmployerWelder.myClass_BelongUnit.EmployerHPID, myDataRow["bmmc"].ToString()); if (string.IsNullOrEmpty(myClass_KindofEmployerWelder.myClass_BelongUnit.DepartmentHPID)) { myClass_KindofEmployerWelder.myClass_BelongUnit.WorkPlaceHPID = null; } else { myClass_KindofEmployerWelder.myClass_BelongUnit.WorkPlaceHPID = Class_WorkPlace.GetWorkPlaceHPID(myClass_KindofEmployerWelder.myClass_BelongUnit.DepartmentHPID, myDataRow["kscj"].ToString()); } myClass_KindofEmployerWelder.myClass_BelongUnit.LaborServiceTeamHPID = Class_LaborServiceTeam.GetLaborServiceTeamHPID(myClass_KindofEmployerWelder.myClass_BelongUnit.EmployerHPID, myDataRow["lwgs"].ToString()); } str_Err = myClass_KindofEmployerWelder.CheckField(); if (string.IsNullOrEmpty(str_Err)) { if (Class_KindofEmployerWelder.ExistSecond(myClass_KindofEmployerWelder.KindofEmployer, myClass_KindofEmployerWelder.IdentificationCard, 0, Enum_zwjKindofUpdate.Add)) { myClass_KindofEmployerWelder.KindofEmployerWelderID = Class_KindofEmployerWelder.GetKindofEmployerWelderID(myClass_KindofEmployerWelder.KindofEmployer, myClass_KindofEmployerWelder.IdentificationCard); myClass_KindofEmployerWelder.AddAndModify(Enum_zwjKindofUpdate.Modify); i_success_modify++; i_success++; } else { myClass_KindofEmployerWelder.AddAndModify(Enum_zwjKindofUpdate.Add); i_success_add++; i_success++; if (!Class_Welder.ExistAndCanDeleteAndDelete(myClass_KindofEmployerWelder.IdentificationCard, Enum_zwjKindofUpdate.Exist)) { Class_Welder myClass_Welder = new Class_Welder(); myClass_Welder.IdentificationCard = myClass_KindofEmployerWelder.IdentificationCard; myClass_Welder.Schooling = myClass_KindofEmployerWelder.Schooling; myClass_Welder.Sex = myClass_KindofEmployerWelder.Sex; myClass_Welder.WelderName = myClass_KindofEmployerWelder.WelderName; myClass_Welder.WeldingBeginning = myClass_KindofEmployerWelder.WeldingBeginning; myClass_Welder.myClass_BelongUnit = myClass_KindofEmployerWelder.myClass_BelongUnit; myClass_Welder.AddAndModify(Enum_zwjKindofUpdate.Add); } } } else { i_fail++; myStringBuilder_err.Append(string.Format("\n身份证号码:{0}, 错误信息:{1}", myClass_KindofEmployerWelder.IdentificationCard, str_Err)); } } this.RefreshData(false); MessageBox.Show(string.Format("操作完成,其中同步成功{0}条,添加{1}条,删除{2}条,失败{3}条,失败原因如下:\n{4}", i_success, i_success_add, i_success_delete, i_fail, myStringBuilder_err.ToString())); }