/// <summary> /// 修改考评对象 /// </summary> /// <param name="objKaoPing"></param> /// <returns></returns> public int ModifyKaoPing(KaoPing objKaoPing, string dept) { //1、编写SQL语句 StringBuilder sqlBuilder = new StringBuilder(); sqlBuilder.Append("update imp_evaluation set 德 = {0},能 = {1},勤 = {2},绩 = {3},考评得分 = {4},考评意见 = '{5}',具体解释说明 = '{6}',备注 = '{7}',更改者 = '{8}',更改日期 = '{9}',IsSubmit = '{10}'"); sqlBuilder.Append(" where 考评年月 = '{11}' and 人员编号 = '{12}' and 部门 = '{13}'"); //2、解析对象 string sql = string.Format(sqlBuilder.ToString(), objKaoPing.德, objKaoPing.能, objKaoPing.勤, objKaoPing.绩, objKaoPing.考评得分, objKaoPing.考评意见, objKaoPing.具体解释说明, objKaoPing.备注, objKaoPing.更改者, objKaoPing.更改日期, objKaoPing.IsSubmit, objKaoPing.考评年月, objKaoPing.人员编号, dept); //3、执行SQL语句,返回结果 return(SQLHelper.Update(sql)); }
private void dgvKaoPing_CellClick(object sender, DataGridViewCellEventArgs e) { if (this.dgvKaoPing.SelectedRows.Count == 0) { return; } #region 点击表格中的一行时,把内容送到编辑区 string userid = this.dgvKaoPing.CurrentRow.Cells["人员编号"].Value.ToString(); KaoPing objKaoPing = objKaoPingService.GetKaoPingByUserId(Program.salaryDate.last_year_month, userid); this.txtBuMen.Text = objKaoPing.部门.ToString(); //this.txtBanZu.Text = objKaoPing.班组.ToString(); this.txtHnbh.Text = objKaoPing.人员编号.ToString(); this.txtName.Text = objKaoPing.姓名.ToString(); this.txtDe.Text = objKaoPing.德.ToString(); this.txtNeng.Text = objKaoPing.能.ToString(); this.txtQin.Text = objKaoPing.勤.ToString(); this.txtJi.Text = objKaoPing.绩.ToString(); this.txtKaoPingDeFen.Text = objKaoPing.考评得分.ToString(); this.txtKaoPingYiJian.Text = objKaoPing.考评意见.ToString(); this.txtJieShiShuoMing.Text = objKaoPing.具体解释说明.ToString(); this.txtBeiZhu.Text = objKaoPing.备注.ToString(); #endregion }
/// <summary> /// 根据人员编号查询考评对象 /// </summary> /// <param name="last_year_month"></param> /// <param name="userid"></param> /// <returns></returns> public KaoPing GetKaoPingByUserId(string last_year_month, string userid) { string sql = "select id, 考评年月, 部门, 人员编号, 姓名, 德, 能, 勤, 绩, 考评得分, 考评意见, 具体解释说明, 备注, 更改者, 更改日期, IsSubmit, 排序 from imp_evaluation"; sql += " where 考评年月 = '{0}' and 人员编号 = '{1}'"; sql = string.Format(sql, last_year_month, userid); SqlDataReader objReader = SQLHelper.GetReader(sql); KaoPing objKaoPing = null; if (objReader.Read()) { objKaoPing = new KaoPing() { id = Convert.ToInt32(objReader["id"].ToString()), 考评年月 = objReader["考评年月"].ToString(), 部门 = objReader["部门"].ToString(), //班组 = objReader["班组"].ToString(), 人员编号 = objReader["人员编号"].ToString(), 姓名 = objReader["姓名"].ToString(), 德 = Convert.ToDouble(objReader["德"]), 能 = Convert.ToDouble(objReader["能"]), 勤 = Convert.ToDouble(objReader["勤"]), 绩 = Convert.ToDouble(objReader["绩"]), 考评得分 = Convert.ToDouble(objReader["考评得分"]), 考评意见 = objReader["考评意见"].ToString(), 具体解释说明 = objReader["具体解释说明"].ToString(), 备注 = objReader["备注"].ToString(), 更改者 = objReader["更改者"].ToString(), 更改日期 = Convert.ToDateTime(objReader["更改日期"]), IsSubmit = objReader["IsSubmit"] is DBNull ? false : (bool)objReader["IsSubmit"], 排序 = objReader["排序"] is DBNull ? 0 : Convert.ToInt32(objReader["排序"].ToString()), }; } objReader.Close(); return(objKaoPing); }
/// <summary> /// 封装对象 /// </summary> private KaoPing FengZhuangDuiXiang() { KaoPing objKaoPing = new KaoPing() { 考评年月 = Program.salaryDate.last_year_month, 部门 = Program.currentAdmin.dept, //班组 = this.txtBanZu.Text.Trim(), 人员编号 = this.txtHnbh.Text.Trim(), 姓名 = this.txtName.Text.Trim(), 德 = Convert.ToDouble(this.txtDe.Text), 能 = Convert.ToDouble(this.txtNeng.Text), 勤 = Convert.ToDouble(this.txtQin.Text), 绩 = Convert.ToDouble(this.txtJi.Text), 考评意见 = this.txtKaoPingYiJian.Text.Trim(), 考评得分 = Convert.ToDouble(this.txtDe.Text) + Convert.ToDouble(this.txtNeng.Text) + Convert.ToDouble(this.txtQin.Text) + Convert.ToDouble(this.txtJi.Text), 具体解释说明 = this.txtJieShiShuoMing.Text.Trim(), 备注 = this.txtBeiZhu.Text.Trim(), 更改者 = Program.currentAdmin.username, 更改日期 = DateTime.Now, IsSubmit = true, }; return(objKaoPing); }
/// <summary> /// 校验考评数据 /// </summary> /// <param name="objKaoPing"></param> /// <returns></returns> public string CheckKaoPing(KaoPing objKaoPing) { StringBuilder err = new StringBuilder(); if (objKaoPing.德 > 25) { err.Append($"人员编号【{objKaoPing.人员编号}】,姓名【{objKaoPing.姓名}】【德】得分不应大于25!\r\n"); } if (objKaoPing.能 > 25) { err.Append($"人员编号【{objKaoPing.人员编号}】,姓名【{objKaoPing.姓名}】【能】得分不应大于25!\r\n"); } if (objKaoPing.勤 > 25) { err.Append($"人员编号【{objKaoPing.人员编号}】,姓名【{objKaoPing.姓名}】【勤】得分不应大于25!\r\n"); } if (objKaoPing.绩 > 25) { err.Append($"人员编号【{objKaoPing.人员编号}】,姓名【{objKaoPing.姓名}】【绩】得分不应大于25!\r\n"); } if (objKaoPing.德 < 0) { err.Append($"人员编号【{objKaoPing.人员编号}】,姓名【{objKaoPing.姓名}】【德】得分不应小于0!\r\n"); } if (objKaoPing.能 < 0) { err.Append($"人员编号【{objKaoPing.人员编号}】,姓名【{objKaoPing.姓名}】【能】得分不应小于0!\r\n"); } if (objKaoPing.勤 < 0) { err.Append($"人员编号【{objKaoPing.人员编号}】,姓名【{objKaoPing.姓名}】【勤】得分不应小于0!\r\n"); } if (objKaoPing.绩 < 0) { err.Append($"人员编号【{objKaoPing.人员编号}】,姓名【{objKaoPing.姓名}】【绩】得分不应小于0!\r\n"); } if (objKaoPing.备注.Length > 30) { err.Append($"人员编号【{objKaoPing.人员编号}】,姓名【{objKaoPing.姓名}】备注字符长度不应大于30!\r\n"); } if (objKaoPing.具体解释说明.Length > 200) { err.Append($"人员编号【{objKaoPing.人员编号}】,姓名【{objKaoPing.姓名}】具体解释说明字符长度不应大于200!\r\n"); } if (objKaoPing.考评得分 >= 80 && objKaoPing.具体解释说明.Length == 0) { err.Append($"人员编号【{objKaoPing.人员编号}】,姓名【{objKaoPing.姓名}】优良人员请填写具体解释说明!\r\n"); } if (objKaoPing.考评得分 < 60 && objKaoPing.具体解释说明.Length == 0) { err.Append($"人员编号【{objKaoPing.人员编号}】,姓名【{objKaoPing.姓名}】不合格人员请填写具体解释说明!\r\n"); } if ((objKaoPing.德 + objKaoPing.能 + objKaoPing.勤 + objKaoPing.绩) != objKaoPing.考评得分) { err.Append($"人员编号【{objKaoPing.人员编号}】,姓名【{objKaoPing.姓名}】各项得分合计与考评得分不一致!\r\n"); } if (objKaoPing.考评得分 >= 80) { if (objKaoPing.考评意见 != "优良") { err.Append($"人员编号【{objKaoPing.人员编号}】,姓名【{objKaoPing.姓名}】考评意见与考评得分不一致!\r\n"); } } else if (objKaoPing.考评得分 >= 60) { if (objKaoPing.考评意见 != "合格") { err.Append($"人员编号【{objKaoPing.人员编号}】,姓名【{objKaoPing.姓名}】考评意见与考评得分不一致!\r\n"); } } else { if (objKaoPing.考评意见 != "不合格") { err.Append($"人员编号【{objKaoPing.人员编号}】,姓名【{objKaoPing.姓名}】考评意见与考评得分不一致!\r\n"); } } return(err.ToString()); }
private void btnSave_Click(object sender, EventArgs e) { #region 验证表单输入数据 if (this.txtDe.Text.Trim().Length == 0) { MessageBox.Show("请填入【德】分数!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (this.txtNeng.Text.Trim().Length == 0) { MessageBox.Show("请填入【能】分数!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (this.txtQin.Text.Trim().Length == 0) { MessageBox.Show("请填入【勤】分数!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (this.txtJi.Text.Trim().Length == 0) { MessageBox.Show("请填入【绩】分数!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (Convert.ToDouble(this.txtDe.Text.Trim()) > 25 || Convert.ToDouble(this.txtNeng.Text.Trim()) > 25 || Convert.ToDouble(this.txtQin.Text.Trim()) > 25 || Convert.ToDouble(this.txtJi.Text.Trim()) > 25) { MessageBox.Show("单项得分不得大于25分,请修改后重新提交!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (Convert.ToDouble(this.txtDe.Text.Trim()) < 0 || Convert.ToDouble(this.txtNeng.Text.Trim()) < 0 || Convert.ToDouble(this.txtQin.Text.Trim()) < 0 || Convert.ToDouble(this.txtJi.Text.Trim()) < 0) { MessageBox.Show("单项得分不得小于0分,请修改后重新提交!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (this.txtJieShiShuoMing.Text.Trim().Length > 200) { MessageBox.Show("具体解释说明不能超过200个字符,请修改后重新提交!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); this.txtJieShiShuoMing.Focus(); return; } if (Convert.ToDouble(this.txtKaoPingDeFen.Text.Trim()) >= 80 && this.txtJieShiShuoMing.Text.Trim().Length == 0) { MessageBox.Show("优良人员请填写具体解释说明!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); this.txtJieShiShuoMing.Focus(); return; } if (Convert.ToDouble(this.txtKaoPingDeFen.Text.Trim()) < 60 && this.txtJieShiShuoMing.Text.Trim().Length == 0) { MessageBox.Show("不合格人员请填写具体解释说明!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); this.txtJieShiShuoMing.Focus(); return; } if (this.txtBeiZhu.Text.Trim().Length > 30) { MessageBox.Show("备注信息不能超过30个字符,请修改后重新提交!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); this.txtBeiZhu.Focus(); return; } string[] strScore = { this.txtDe.Text.Trim(), this.txtNeng.Text.Trim(), this.txtQin.Text.Trim(), this.txtJi.Text.Trim() }; double dYouLiangLv = objKaoPingService.GetCurrentYouLiangLv(Program.salaryDate.last_year_month, Program.currentAdmin.dept, strScore, this.txtHnbh.Text.Trim()); if (dYouLiangLv > 0.2) { MessageBox.Show("优良人数不能超过部门人数的20%,请修改后重新提交!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } #endregion #region 封装对象 KaoPing objKaoPing = FengZhuangDuiXiang(); #endregion #region 修改对象 try { if (objKaoPingService.ModifyKaoPing(objKaoPing, Program.currentAdmin.dept) == 1) { MessageBox.Show("修改成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); init_dgvKaoPing(); init_gbKaoPing(); } } catch (Exception ex) { MessageBox.Show(ex.Message); } #endregion }