Exemple #1
0
        public List <BranchAssessmentDetailOverviewModel> GetBranchAssessmentDetail(string assessment_id, string branch_name, int?assessment_detail_statue, Pagination pagination)
        {
            StringBuilder sqlBuilder = new StringBuilder();

            sqlBuilder.Append("SELECT DISTINCT a.assessment_id,a.check_object,b.assessment_name,c.templete_name,b.start_time,b.end_time,d.F_FullName AS branch_name,d.F_Id AS branch_id,a.create_time ");
            sqlBuilder.Append("FROM t_kpi_launch_detail a LEFT JOIN t_kpi_launch b ON a.assessment_id = b.id ");
            sqlBuilder.Append("LEFT JOIN t_kpi_templete c ON b.templete_id = c.id ");
            sqlBuilder.Append("LEFT JOIN sys_organize d ON a.check_object = d.F_Id ");
            sqlBuilder.AppendFormat("where a.assessment_id = '{0}' ", assessment_id);
            if (!string.IsNullOrEmpty(branch_name))
            {
                sqlBuilder.AppendFormat("and d.F_FullName like '%{0}%'", branch_name);
            }

            List <BranchAssessmentDetailOverviewModel> list = service.FindListBySql <BranchAssessmentDetailOverviewModel>(sqlBuilder.ToString(), pagination).ToList();

            for (int i = 0; i < list.Count; i++)
            {
                BranchAssessmentDetailOverviewModel model = list[i];
                string checker = OperatorProvider.Provider.GetCurrent().UserId;

                string sql       = string.Format("select count(*) from t_self_task_detail where attach = '{0}' and person = '{1}' and task_statue = 1 and task_object = '{2}' ", assessment_id, checker, model.branch_id);
                int    taskCount = service.BasicQueryT <int>(sql);
                model.flag = taskCount;

                sql = string.Format("select b.F_RealName from t_kpi_launch_detail a left join sys_user b on a.checker = b.F_Id where a.assessment_id = '{0}' and a.check_object = '{1}' and a.finished = 0 order by a.check_order asc limit 0,1", assessment_id, model.check_object);
                string result = service.BasicQueryT <string>(sql);
                if (!string.IsNullOrEmpty(result))
                {
                    model.assessment_detail_statue = 0;
                    model.assessment_statue_detail = result + "考核中";
                    model.score = 0d;
                }
                else
                {
                    model.assessment_detail_statue = 1;
                    model.assessment_statue_detail = "已完成";
                    //查询成绩(分公司目前成绩多个考评人都一样取第一条)
                    AssessmentResultCountEntity assessmentResultCountEntity = assessmentResultCountApp.GetByAssessmentIdCheckerCheckObject(assessment_id, string.Empty, model.branch_id);
                    //sql = string.Format("select distinct total_score from t_kpi_result where assessment_id = '{0}' and check_object = '{1}'", assessment_id, model.branch_id);
                    //double? totalScore = service.BasicQueryT<double?>(sql);
                    //model.score = assessmentResultCountEntity.total_score;
                    model.score = (double?)decimal.Round(decimal.Parse(assessmentResultCountEntity.total_score.ToString()), 2);
                }
            }

            if (assessment_detail_statue.HasValue)
            {
                list = list.FindAll(t => t.assessment_detail_statue == assessment_detail_statue.Value);
            }

            return(list);
        }
 public void SubmitForm(AssessmentResultCountEntity assessmentresultcountEntity, string keyValue)
 {
     if (!string.IsNullOrEmpty(keyValue))
     {
         assessmentresultcountEntity.Modify(keyValue);
         service.Update(assessmentresultcountEntity);
     }
     else
     {
         assessmentresultcountEntity.Create();
         service.Insert(assessmentresultcountEntity);
     }
 }
        public ActionResult GetPersonalCheckerResultDetail(string assessment_id, string check_object)
        {
            List <ResultDetailMode> list = new List <ResultDetailMode>();

            List <AssessmentDetailEntity> assessmentDetailEntityList = assessmentDetailApp.GetByAssessmentIdCheckObj(assessment_id, check_object);

            assessmentDetailEntityList = assessmentDetailEntityList.OrderBy(t => t.check_order).ToList();
            List <AssessmentDetailEntity> unCheckedList = assessmentDetailEntityList.FindAll(t => t.finished == 0);
            AssessmentDetailEntity        curItem       = null;

            if (unCheckedList != null && unCheckedList.Count > 0)
            {
                curItem = unCheckedList[0];
            }
            assessmentDetailEntityList.ForEach((t) =>
            {
                ResultDetailMode resultDetailMode = new ResultDetailMode();
                resultDetailMode.is_checked       = t.finished;
                resultDetailMode.check_order      = t.check_order;
                resultDetailMode.checker          = t.checker;
                resultDetailMode.checker_name     = userApp.GetForm(t.checker).F_RealName;
                resultDetailMode.checker_weight   = t.checker_weight;

                AssessmentResultCountEntity assessmentResultCountEntity = assessmentResultCountApp.GetByAssessmentIdCheckerCheckObject(assessment_id, t.checker, t.check_object);
                if (assessmentResultCountEntity != null)
                {
                    resultDetailMode.result = assessmentResultCountEntity.unfixed_score;
                }
                else
                {
                    resultDetailMode.result = 0d;
                }
                if (curItem != null)
                {
                    if (t.id == curItem.id)
                    {
                        resultDetailMode.is_checked_true = 1;
                    }
                    else
                    {
                        resultDetailMode.is_checked_true = 0;
                    }
                }
                else
                {
                    resultDetailMode.is_checked_true = 0;
                }
                list.Add(resultDetailMode);
            });
            return(Success("操作成功。", list, list.Count));
        }
        public ActionResult CheckAssessment(string assessment_id, string check_object, string checker_result_list, double?fixed_score, double?unfixed_score, double?total_score, double?checker_weight)
        {
            AssessmentEntity assessmentEntity = assessmentApp.GetForm(assessment_id);

            if (assessmentEntity == null)
            {
                return(Error("此考核不存在。"));
            }
            //if (assessmentEntity.need_self_check == 0) return Error("此考核不需要自评。");
            List <SelfCheckResultModel> resultList = KPI.Code.Json.ToObject <List <SelfCheckResultModel> >(checker_result_list);
            string checker = OperatorProvider.Provider.GetCurrent().UserId;

            using (var db = new RepositoryBase().BeginTrans())
            {
                AssessmentDetailEntity assessmentDetailEntity = assessmentDetailApp.GetByAssessmentIdCheckerCheckObj(assessment_id, checker, check_object);
                assessmentDetailEntity.finished         = 1;
                assessmentDetailEntity.last_modify_time = DateTime.Now;
                db.Update <AssessmentDetailEntity>(assessmentDetailEntity);

                //更新自己的考核任务为已完成
                SelfTaskDetailEntity curTaskDetailEntity = null;
                if (checker == check_object && assessmentDetailApp.IsSelfCheck(assessment_id, checker, check_object))//自评
                {
                    curTaskDetailEntity = selfTaskDetailApp.GetByPersonAttachPersonTaskObjTaskType(assessment_id, checker, check_object, 3);
                }
                else
                {
                    curTaskDetailEntity = selfTaskDetailApp.GetByPersonAttachPersonTaskObjTaskType(assessment_id, checker, check_object, 1);
                }
                curTaskDetailEntity.task_statue      = 2;
                curTaskDetailEntity.last_modify_time = DateTime.Now;
                db.Update <SelfTaskDetailEntity>(curTaskDetailEntity);

                //保存此考核人对此考核对象的分数
                AssessmentResultCountEntity assessmentResultCountEntity = new AssessmentResultCountEntity();
                assessmentResultCountEntity.id              = Common.GuId();
                assessmentResultCountEntity.assessment_id   = assessment_id;
                assessmentResultCountEntity.checker         = checker;
                assessmentResultCountEntity.checker_weight  = checker_weight;
                assessmentResultCountEntity.check_object    = check_object;
                assessmentResultCountEntity.fixed_score     = fixed_score;
                assessmentResultCountEntity.unfixed_score   = unfixed_score;
                assessmentResultCountEntity.total_score     = fixed_score + unfixed_score;
                assessmentResultCountEntity.creator_user_id = OperatorProvider.Provider.GetCurrent().UserId;
                assessmentResultCountEntity.create_time     = DateTime.Now;
                db.Insert <AssessmentResultCountEntity>(assessmentResultCountEntity);

                //如果自己不是该考核对象的最后一个考核人激活下一个人对该考核对象的任务
                if (!assessmentDetailApp.IsLastCheckerToObject(assessment_id, checker, check_object))
                {
                    int nextCheckOrder = assessmentDetailEntity.check_order + 1;
                    AssessmentDetailEntity nextAssessmentDetailEntity = assessmentDetailApp.GetByAssessmentIdCheckOrderCheckObj(assessment_id, check_object, nextCheckOrder);
                    SelfTaskDetailEntity   selfTaskDetailEntity       = selfTaskDetailApp.GetByPersonAttachPersonTaskObjTaskType(assessment_id, nextAssessmentDetailEntity.checker, check_object, 1);
                    //激活任务
                    selfTaskDetailEntity.task_statue      = 1;
                    selfTaskDetailEntity.last_modify_time = DateTime.Now;
                    db.Update <SelfTaskDetailEntity>(selfTaskDetailEntity);
                }
                //如果是整个考核的最后一条
                if (assessmentDetailApp.IsLastChecker(assessment_id))
                {
                    //更新整个考核为待归档
                    AssessmentEntity curAssessmentEntity = assessmentApp.GetForm(assessment_id);
                    if (curAssessmentEntity == null)
                    {
                        return(Error("系统未知错误。"));
                    }
                    curAssessmentEntity.assessment_statue = 1;
                    curAssessmentEntity.last_modify_time  = DateTime.Now;
                    db.Update <AssessmentEntity>(curAssessmentEntity);
                    //激活“考核结果审核人”的归档任务
                    SelfTaskDetailEntity selfTaskDetailEntity = selfTaskDetailApp.GetByPersonAttachTaskObjTaskType(assessment_id, assessment_id, 4);
                    selfTaskDetailEntity.task_statue      = 1;
                    selfTaskDetailEntity.last_modify_time = DateTime.Now;
                    db.Update <SelfTaskDetailEntity>(selfTaskDetailEntity);
                }
                //更新自评项分数
                for (int i = 0; i < resultList.Count; i++)
                {
                    SelfCheckResultModel model = resultList[i];
                    model.indicator_id = indicatorsDefineApp.GetIndicatorByName(model.indicator_name).id;
                    AssessmentResultEntity assessmentResultEntity = assessmentResultApp.GetByAssessmentIdObjIndicatorId(assessment_id, check_object, model.indicator_id);
                    assessmentResultEntity.indicator_value  = model.indicator_value;
                    assessmentResultEntity.last_modify_time = DateTime.Now;
                    db.Update <AssessmentResultEntity>(assessmentResultEntity);
                }
                db.Commit();
            }
            return(Success("操作成功。"));
        }
        public ActionResult CheckAssessment(string assessment_id, string check_object, double?fixed_score, double?unfixed_score, double?toatal_score, double?checker_weight)
        {
            using (var db = new RepositoryBase().BeginTrans())
            {
                string checker = OperatorProvider.Provider.GetCurrent().UserId;
                //
                AssessmentDetailEntity assessmentDetailEntity = assessmentDetailApp.GetByAssessmentIdCheckerCheckObj(assessment_id, checker, check_object);
                assessmentDetailEntity.finished         = 1;
                assessmentDetailEntity.last_modify_time = DateTime.Now;
                db.Update <AssessmentDetailEntity>(assessmentDetailEntity);

                //保存此考核人对此考核对象的分数
                AssessmentResultCountEntity assessmentResultCountEntity = new AssessmentResultCountEntity();
                assessmentResultCountEntity.id              = Common.GuId();
                assessmentResultCountEntity.assessment_id   = assessment_id;
                assessmentResultCountEntity.checker         = checker;
                assessmentResultCountEntity.checker_weight  = checker_weight;
                assessmentResultCountEntity.check_object    = check_object;
                assessmentResultCountEntity.fixed_score     = fixed_score;
                assessmentResultCountEntity.unfixed_score   = unfixed_score;
                assessmentResultCountEntity.total_score     = fixed_score + unfixed_score;
                assessmentResultCountEntity.creator_user_id = OperatorProvider.Provider.GetCurrent().UserId;
                assessmentResultCountEntity.create_time     = DateTime.Now;
                db.Insert <AssessmentResultCountEntity>(assessmentResultCountEntity);

                //更新自己的考核任务为已完成
                SelfTaskDetailEntity curTaskDetailEntity = selfTaskDetailApp.GetByPersonAttachPersonTaskObjTaskType(assessment_id, checker, check_object, 1);
                curTaskDetailEntity.task_statue      = 2;
                curTaskDetailEntity.last_modify_time = DateTime.Now;
                db.Update <SelfTaskDetailEntity>(curTaskDetailEntity);

                //如果自己不是该考核对象的最后一个考核人激活下一个人对该考核对象的任务
                if (!assessmentDetailApp.IsLastCheckerToObject(assessment_id, checker, check_object))
                {
                    int nextCheckOrder = assessmentDetailEntity.check_order + 1;
                    AssessmentDetailEntity nextAssessmentDetailEntity = assessmentDetailApp.GetByAssessmentIdCheckOrderCheckObj(assessment_id, check_object, nextCheckOrder);
                    SelfTaskDetailEntity   curSelfTaskDetailEntity    = selfTaskDetailApp.GetByPersonAttachPersonTaskObjTaskType(assessment_id, nextAssessmentDetailEntity.checker, check_object, 1);
                    //激活任务
                    curSelfTaskDetailEntity.task_statue      = 1;
                    curSelfTaskDetailEntity.last_modify_time = DateTime.Now;
                    db.Update <SelfTaskDetailEntity>(curSelfTaskDetailEntity);
                }
                //如果是整个考核的最后一条
                if (assessmentDetailApp.IsLastChecker(assessment_id))//如果是最后一个人对最后一个对象考核
                {
                    //更新整个考核为待归档
                    AssessmentEntity assessmentEntity = assessmentApp.GetForm(assessment_id);
                    if (assessmentEntity == null)
                    {
                        return(Error("系统未知错误。"));
                    }
                    assessmentEntity.assessment_statue = 1;
                    assessmentEntity.last_modify_time  = DateTime.Now;
                    db.Update <AssessmentEntity>(assessmentEntity);
                    //激活“考核结果审核人”的归档任务
                    SelfTaskDetailEntity selfTaskDetailEntity = selfTaskDetailApp.GetByPersonAttachTaskObjTaskType(assessment_id, assessment_id, 4);
                    selfTaskDetailEntity.task_statue      = 1;
                    selfTaskDetailEntity.last_modify_time = DateTime.Now;
                    db.Update <SelfTaskDetailEntity>(selfTaskDetailEntity);
                }

                db.Commit();
            }
            return(Success("操作成功。", null));
        }