/// <summary>
        /// 新增绩效考核明细
        /// </summary>
        public object InsertExamDetails(Module.ExamineDetail detail, out string mag)
        {
            mag = string.Empty;
            string strSQL = @"Insert Into FY_Performance_Examine(FEmResultID,FProject_id,FSelfGrade) 
            Values(@FID,@FProject_id,@FSelfGrade)";

            SqlParameter[] paras = new SqlParameter[] {
                new SqlParameter("@FID", detail.FEmResultID),
                new SqlParameter("@FProject_id", detail.FProject_id),
                new SqlParameter("@FSelfGrade", detail.FSelfGrade),
            };
            try {
                mSSQL = new MSSQLHelper();
                return(mSSQL.GetUpdateByText(strSQL, paras));
            }
            catch (Exception ex) {
                mag = ex.Message;
                return(null);
            }
        }
        /// <summary>
        /// 更新绩效考核明细表
        /// </summary>
        public object UpdateExamDetails(Module.ExamineDetail detail, out string mag)
        {
            mag = string.Empty;
            string strSQL = @"Update FY_Performance_Examine Set FSelfGrade=@FSelfGrade,FRepeGrade=@FRepeGrade Where FEmResultID=@FID and FProject_id=@FProject_id";

            SqlParameter[] paras = new SqlParameter[] {
                new SqlParameter("@FSelfGrade", detail.FSelfGrade),
                new SqlParameter("@FRepeGrade", detail.FRepeGrade),
                new SqlParameter("@FID", detail.FEmResultID),
                new SqlParameter("@FProject_id", detail.FProject_id),
            };
            try {
                mSSQL = new MSSQLHelper();
                return(mSSQL.GetUpdateByText(strSQL, paras));
            }
            catch (Exception ex) {
                mag = ex.Message;
                return(null);
            }
        }
Beispiel #3
0
        /// <summary>
        /// 【提交】点击事件
        /// </summary>
        protected void btnCommit_Click(object sender, EventArgs e)
        {
            bool   success = false;
            string mag     = string.Empty;

            Module.ExamineDetail detail = null;

            //**新增状态**
            if (status == 0)
            {
                //*新增记录表*
                exResult = new Module.ExamineResult()
                {
                    FCDate      = DateTime.Now.Date,
                    FMDate      = DateTime.Now.Date,
                    FEmCode     = labEmCode.Text,
                    FYear       = labYear.Text,
                    FMonth      = labMonth.Text,
                    FSelfSum    = Convert.ToInt32(string.IsNullOrEmpty(txtSelfSum.Text) ? "0" : txtSelfSum.Text),
                    FRepeSum    = Convert.ToInt32(string.IsNullOrEmpty(txtReGradeSum.Text) ? "0" : txtReGradeSum.Text),
                    FExamineSum = Convert.ToDecimal(string.IsNullOrEmpty(txtTotalSum.Text) ? "0" : txtTotalSum.Text),
                };

                //*验证自评总分是否超出范围*
                if (exResult.FSelfSum > 100 || exResult.FSelfSum <= 0)
                {
                    mag = "自评总分超出正常范围,请重新填写后再提交。";
                    Response.Write($@"<script language=javaScript>alert('{mag}');</script>");
                    return;
                }
                object _result = menuAction.InsertExamResult(exResult, out mag);
                if (_result == null)
                {
                    Response.Write($@"<script language=javaScript>alert('{mag}');</script>");
                    return;
                }
                //*新增明细表*
                try {
                    int rowCount = GridView1.Rows.Count;
                    int _fid     = Convert.ToInt32(_result);
                    if (rowCount > 0)
                    {
                        for (int i = 0; i < rowCount; i++)
                        {
                            TextBox text = GridView1.Rows[i].FindControl("TxtSelfGrade") as TextBox;
                            detail = null;
                            detail = new Module.ExamineDetail()
                            {
                                FEmResultID = Convert.ToInt32(_fid),
                                FProject_id = i + 1,
                                //FSelfGrade = Convert.ToInt32(string.IsNullOrEmpty(text.Text) ? "0" : text.Text),
                            };
                            try {
                                detail.FSelfGrade = Convert.ToInt32(string.IsNullOrEmpty(text.Text) ? "0" : text.Text);
                            }
                            catch {
                                detail.FSelfGrade = 0;
                            }
                            int x = (int)menuAction.InsertExamDetails(detail, out mag);
                            if (x != 1)
                            {
                                Response.Write($@"<script language=javaScript>alert('{mag}');</script>");
                                return;
                            }
                        }
                    }
                }
                catch (Exception ex) {
                    mag = ex.Message;
                    Response.Write($@"<script language=javaScript>alert('{mag}');</script>");
                    return;
                }
                //*过程已通过*
                success = true;
            }
            //更新状态
            else
            {
                if (this.fid > 0)
                {
                    //*复评状态下,绩效评语为必填*
                    if (status >= 1 && string.IsNullOrEmpty(txtExmMessage.Text) && txtExmMessage.Visible)
                    {
                        mag = "绩效评语为必填项,请重新填写后再提交。";
                        Response.Write($@"<script language=javaScript>alert('{mag}');</script>");
                        return;
                    }

                    //*结果表*
                    exResult = new Module.ExamineResult()
                    {
                        FMDate       = DateTime.Now.Date,
                        FSelfSum     = Convert.ToInt32(string.IsNullOrEmpty(txtSelfSum.Text) ? "0" : txtSelfSum.Text),
                        FRepeSum     = Convert.ToInt32(string.IsNullOrEmpty(txtReGradeSum.Text) ? "0" : txtReGradeSum.Text),
                        FExamineSum  = Convert.ToDecimal(string.IsNullOrEmpty(txtTotalSum.Text) ? "0" : txtTotalSum.Text),
                        FExamMessage = string.IsNullOrEmpty(txtExmMessage.Text) ? "" : txtExmMessage.Text,
                        FStatus      = this.status.ToString(),
                        FID          = this.fid,
                    };

                    //*复评分,状态=3*
                    if (Convert.ToBoolean(Session["HiddInform"]))
                    {
                        exResult.FStatus = "3";
                    }
                    //*返回自评,状态=3*
                    if (this.status == 2)
                    {
                        exResult.FStatus = "3";
                    }

                    //*验证复评总分是否超出范围*
                    if (exResult.FRepeSum > 100 || exResult.FRepeSum < 0)
                    {
                        mag = "复评总分超出正常范围,请重新填写后再提交。";
                        Response.Write($@"<script language=javaScript>alert('{mag}');</script>");
                        return;
                    }
                    //*计算绩效系数*
                    if (exResult.FExamineSum >= 95 && exResult.FExamineSum <= 100)
                    {
                        exResult.FCoefficient = 1.2M;
                    }
                    else if (exResult.FExamineSum >= 90 && exResult.FExamineSum < 95)
                    {
                        exResult.FCoefficient = 1.1M;
                    }
                    else if (exResult.FExamineSum >= 80 && exResult.FExamineSum < 90)
                    {
                        exResult.FCoefficient = 1.0M;
                    }
                    else if (exResult.FExamineSum >= 70 && exResult.FExamineSum < 80)
                    {
                        exResult.FCoefficient = 0.8M;
                    }
                    else if (exResult.FExamineSum >= 60 && exResult.FExamineSum < 70)
                    {
                        exResult.FCoefficient = 0.5M;
                    }
                    else
                    {
                        exResult.FCoefficient = 0;
                    }

                    int result = (int)menuAction.UpdateExamResult(exResult, out mag);
                    if (result != 1)
                    {
                        Response.Write($@"<script language=javaScript>alert('{mag}');</script>");
                        return;
                    }
                    //*明细表*
                    try {
                        int rowCount = GridView1.Rows.Count;
                        if (rowCount > 0)
                        {
                            for (int i = 0; i < rowCount; i++)
                            {
                                //*待复评分*
                                if (status >= 1)
                                {
                                    detail = null;
                                    detail = new Module.ExamineDetail()
                                    {
                                        FEmResultID = Convert.ToInt32(this.fid),
                                        FProject_id = i + 1,
                                    };

                                    //*代评分用户 FProject_id改为0*
                                    if (Convert.ToInt32(Session["MyReview_isDaiGrade"]) == 3)
                                    {
                                        detail.FProject_id = 0;
                                    }

                                    //*排除 返回自评 的状态,否则复评分会被清零*
                                    if (status != 2)
                                    {
                                        try {
                                            detail.FRepeGrade = Convert.ToInt32(GridView1.Rows[i].Cells[9].Text);
                                        }
                                        catch {
                                            TextBox ExGrade = GridView1.Rows[i].FindControl("TxtExGrade") as TextBox;
                                            detail.FRepeGrade = Convert.ToInt32(string.IsNullOrEmpty(ExGrade.Text) ? "0" : ExGrade.Text);
                                        }
                                    }
                                    else
                                    {
                                        exmDetails = Session["exmGrade"] as List <Module.ExamineDetail>;
                                        foreach (Module.ExamineDetail item in exmDetails)
                                        {
                                            if (detail.FProject_id.Equals(item.FProject_id))
                                            {
                                                detail.FRepeGrade = item.FRepeGrade;
                                            }
                                        }
                                    }

                                    try {
                                        detail.FSelfGrade = Convert.ToInt32(GridView1.Rows[i].Cells[8].Text);
                                    }
                                    catch {
                                        TextBox SelfGrade = GridView1.Rows[i].FindControl("TxtSelfGrade") as TextBox;
                                        detail.FSelfGrade = Convert.ToInt32(string.IsNullOrEmpty(SelfGrade.Text) ? "0" : SelfGrade.Text);
                                    }
                                }

                                int x = (int)menuAction.UpdateExamDetails(detail, out mag);
                                if (x != 1)
                                {
                                    Response.Write($@"<script language=javaScript>alert('{mag}');</script>");
                                    return;
                                }
                            }
                        }
                    }
                    catch (Exception ex) {
                        Response.Write($@"<script language=javaScript>alert('{ex.Message}');</script>");
                        return;
                    }
                    //*过程已通过*
                    success = true;
                }
            }
            if (success)
            {
                mag = "数据保存成功,请返回主页。";
                if (Convert.ToInt32(Session["MyReview_isDaiGrade"]) == 3)
                {
                    Response.Write($"<script language='javascript'>alert('{mag}'); location='MyReview';</script>");
                }
                else
                {
                    Response.Write($"<script language='javascript'>alert('{mag}'); location='{hiddenUrl.Value}';</script>");
                }
            }
            else
            {
                mag = "数据保存失败,请联系管理员查找原因!";
                Response.Write($@"<script language=javaScript>alert('{mag}');</script>");
                return;
            }
        }
        /// <summary>
        /// 绩效考核项目表
        /// </summary>
        public List <Module.ExamineDetail> GetExamineProject(bool FIsDirector, int emStatus, out string mag)
        {
            mSSQL = new MSSQLHelper();
            mag   = string.Empty;
            List <Module.ExamineDetail> exDetails = null;
            string strSQL;

            //*是否代评分账号*
            if (emStatus != 3)
            {
                //*主管以下级别*
                if (!FIsDirector)
                {
                    strSQL = @"Select FProjectID,FProject,FEvaluate,FProject_1,FProject_2,FProject_3,FProject_4,FProject_5,0 FSelfGrade,0 FRepeGrade
                From FY_Performance_ExamineProject Where FUddirID<>0";
                }
                //*主管级别*
                else
                {
                    strSQL = @"Select FProjectID,FProject,FEvaluate,FProject_1,FProject_2,FProject_3,FProject_4,FProject_5,0 FSelfGrade,0 FRepeGrade
                From FY_Performance_ExamineProject Where FDirID<>0";
                }
            }
            else
            {
                strSQL = @"Select FProjectID,FProject,FEvaluate,FProject_1,FProject_2,FProject_3,FProject_4,FProject_5,0 FSelfGrade,0 FRepeGrade 
                From FY_Performance_ExamineProject Where FIsDaiGrade = 1";
            }
            try {
                exDetails = new List <Module.ExamineDetail>();
                DataTable dt = mSSQL.GetTableByText(strSQL);
                if (dt.Rows.Count > 0)
                {
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        Module.ExamineDetail detail = new Module.ExamineDetail {
                            FProject_id = (int)dt.Rows[i]["FProjectID"],
                            FProject    = dt.Rows[i]["FProject"].ToString(),
                            FEvaluate   = dt.Rows[i]["FEvaluate"].ToString(),
                            FProject_1  = dt.Rows[i]["FProject_1"].ToString(),
                            FProject_2  = dt.Rows[i]["FProject_2"].ToString(),
                            FProject_3  = dt.Rows[i]["FProject_3"].ToString(),
                            FProject_4  = dt.Rows[i]["FProject_4"].ToString(),
                            FProject_5  = dt.Rows[i]["FProject_5"].ToString(),
                            FSelfGrade  = (int)dt.Rows[i]["FSelfGrade"],
                            FRepeGrade  = (int)dt.Rows[i]["FRepeGrade"],
                        };
                        exDetails.Add(detail);
                    }
                }
                else
                {
                    exDetails = null;
                    mag       = "数据查询为空,请联系管理员检查。";
                }
            }
            catch (Exception ex) {
                mag       = ex.Message;
                exDetails = null;
            }
            return(exDetails);
        }