protected override bool SaveData(DataTable dt, params string[] arr)
        {
            string assessmentId = arr[0];

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                for (int j = 1; j < dt.Columns.Count; j++)
                {
                    AssessmentResultEntity entity = null;
                    string indicator_id           = indicatorsDefineApp.GetIndicatorByName(dt.Columns[j].ColumnName + "").id;
                    string orgId = organizeApp.GetOrgByName(dt.Rows[i][0] + "").F_Id;
                    entity = assessmentResultApp.GetByAssessmentIdObjIndicatorId(assessmentId, orgId, indicator_id);
                    if (entity == null)//如果是第一次考评
                    {
                        entity                 = new AssessmentResultEntity();
                        entity.id              = Common.GuId();
                        entity.assessment_id   = assessmentId;
                        entity.check_object    = orgId;
                        entity.indicator_id    = indicator_id;
                        entity.indicator_value = double.Parse(dt.Rows[i][j] + "");
                        entity.create_time     = DateTime.Now;
                        entity.creator_user_id = OperatorProvider.Provider.GetCurrent().UserId;
                        DbContext.Insert <AssessmentResultEntity>(entity);
                    }
                    else //如果是重新发起的考评
                    {
                        entity.indicator_value = double.Parse(dt.Rows[i][j] + "");
                        DbContext.Update <AssessmentResultEntity>(entity);
                    }
                }
            }
            return(true);
        }
Example #2
0
        public bool SaveAssessmentResultAndAnsweredSheet(AssessmentResultEntity assessmentResultEntity)
        {
            try
            {
                AssessmentResultData assessmentResultData = new AssessmentResultData();
                assessmentResultData.UserId                    = assessmentResultEntity.UserId;
                assessmentResultData.AssessmentId              = assessmentResultEntity.AssessmentId;
                assessmentResultData.QuestionPaperId           = assessmentResultEntity.QuestionPaperId;
                assessmentResultData.CanInsertAssessmentResult = assessmentResultEntity.CanInsertAssessmentResult;
                assessmentResultData.IsWriteAssessmentLater    = assessmentResultEntity.IsWriteAssessmentLater;
                int rightAnsweredCount = 0;
                foreach (var answer in assessmentResultEntity.AnsweredSheet)
                {
                    if (answer.SelectedOptionId == answer.RightOptionId)
                    {
                        rightAnsweredCount = rightAnsweredCount + 1;
                    }
                }
                assessmentResultData.TotalQuestionsCount = assessmentResultEntity.AnsweredSheet.Count;
                assessmentResultData.RightAnsweredCount  = rightAnsweredCount;

                List <QuestionPaperData> listQuestionPaperData = new List <QuestionPaperData>();

                foreach (var questionEntity in assessmentResultEntity.AnsweredSheet)
                {
                    QuestionPaperData questionPaperData = new QuestionPaperData();
                    questionPaperData.ID               = questionEntity.ID;
                    questionPaperData.Number           = questionEntity.Number;
                    questionPaperData.OptionType       = questionEntity.OptionType;
                    questionPaperData.Options          = new List <OptionsData>();
                    questionPaperData.SelectedOptionId = questionEntity.SelectedOptionId;
                    questionPaperData.WrittenAnswer    = questionEntity.WrittenAnswer;

                    foreach (var optionEntity in questionEntity.Options)
                    {
                        OptionsData optionData = new OptionsData();
                        optionData.ID         = optionEntity.ID;
                        optionData.OptionText = optionEntity.OptionText;
                        questionPaperData.Options.Add(optionData);
                    }
                    questionPaperData.QuestionText  = questionEntity.QuestionText;
                    questionPaperData.RightOptionId = questionEntity.RightOptionId;
                    listQuestionPaperData.Add(questionPaperData);
                }
                assessmentResultData.AnsweredSheet = listQuestionPaperData;


                IQuestionPaperRepository questionPaperRepository = DataFactory.DataFactory.CreateQuestionPaperRepositoryInstance();
                return(questionPaperRepository.SaveAssessmentResultAndAnsweredSheet(assessmentResultData));
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
Example #3
0
 public void SubmitForm(AssessmentResultEntity assessmentresultEntity, string keyValue)
 {
     if (!string.IsNullOrEmpty(keyValue))
     {
         assessmentresultEntity.Modify(keyValue);
         service.Update(assessmentresultEntity);
     }
     else
     {
         assessmentresultEntity.Create();
         service.Insert(assessmentresultEntity);
     }
 }
Example #4
0
        public async Task <HttpResponseMessage> PostAnswerSheet(AssessmentResultModel assessmentResultModel)
        {
            try
            {
                AssessmentResultEntity assessmentResultEntity = new AssessmentResultEntity();
                assessmentResultEntity.UserId                 = assessmentResultModel.UserId;
                assessmentResultEntity.AssessmentId           = assessmentResultModel.AssessmentId;
                assessmentResultEntity.QuestionPaperId        = assessmentResultModel.QuestionPaperId;
                assessmentResultEntity.TotalQuestionsCount    = assessmentResultModel.TotalQuestionsCount;
                assessmentResultEntity.RightAnsweredCount     = assessmentResultModel.RightAnsweredCount;
                assessmentResultEntity.IsWriteAssessmentLater = assessmentResultModel.IsWriteAssessmentLater;
                List <QuestionEntity> listQuestionPaperEntity = new List <QuestionEntity>();

                foreach (var questionModel in assessmentResultModel.QuestionPaper)
                {
                    QuestionEntity questionPaperEntity = new QuestionEntity();
                    questionPaperEntity.ID               = questionModel.ID;
                    questionPaperEntity.Number           = questionModel.Number;
                    questionPaperEntity.OptionType       = questionModel.OptionType;
                    questionPaperEntity.Options          = new List <OptionsEntity>();
                    questionPaperEntity.SelectedOptionId = questionModel.SelectedOptionId;
                    questionPaperEntity.WrittenAnswer    = questionModel.WrittenAnswer;

                    foreach (var optionModel in questionModel.Options)
                    {
                        OptionsEntity optionEntity = new OptionsEntity();
                        optionEntity.ID         = optionModel.ID;
                        optionEntity.OptionText = optionModel.OptionText;
                        questionPaperEntity.Options.Add(optionEntity);
                    }
                    questionPaperEntity.QuestionText  = questionModel.QuestionText;
                    questionPaperEntity.RightOptionId = questionModel.RightOptionId;
                    listQuestionPaperEntity.Add(questionPaperEntity);
                }
                assessmentResultEntity.AnsweredSheet = listQuestionPaperEntity;



                BusinessFactory.CreateQuestionPaperBusinessInstance().SaveAssessmentResultAndAnsweredSheet(assessmentResultEntity);


                return(Request.CreateResponse(HttpStatusCode.OK));
            }
            catch (System.Exception e)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e));
            }
        }
        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("操作成功。"));
        }