示例#1
0
        protected override void ExcuteSelf()
        {
            try
            {
                DiyStep currentStep = _TraineeApplication.TraineeApplicationDiyProcess.FindStep
                                          (_TraineeApplication.NextStep.DiyStepID);
                //TraineeApplicationStatus traineeApplicationStatus = _TraineeApplication.TraineeApplicationStatuss;
                DiyStep nextStep = _TraineeApplication.TraineeApplicationDiyProcess.FindNextStep
                                       (_TraineeApplication.NextStep.DiyStepID);
                if (nextStep == null)
                {
                    nextStep = new DiyStep(0, "结束", OperatorType.Others, 0);
                }
                if (_Status.Id == TraineeApplicationStatus.ApproveFail.Id)
                {
                    nextStep = new DiyStep(0, "结束", OperatorType.Others, 0);
                }

                _TraineeApplication.NextStep    = nextStep;
                _TraineeApplication.CurrentStep = currentStep;
                if (nextStep.DiyStepID != 0)
                {
                    _TraineeApplication.TraineeApplicationStatuss = TraineeApplicationStatus.Approving;
                }
                else
                {
                    _TraineeApplication.TraineeApplicationStatuss = _Status;
                }
                //_TraineeApplication.TraineeApplicationFlowList =
                //    new List<TraineeApplicationFlow>();
                //_TraineeApplication.TraineeApplicationFlowList.Add(
                //    new TraineeApplicationFlow(_LoginUser, DateTime.Now,
                //                               _TraineeApplication.TraineeApplicationStatuss));
                TraineeApplicationFlow flow =
                    new TraineeApplicationFlow(_LoginUser, DateTime.Now,
                                               _TraineeApplication.TraineeApplicationStatuss);
                flow.Remark = _Remark;
                _TraineeApplication.TraineeApplicationFlowList = new List <TraineeApplicationFlow>();
                _TraineeApplication.TraineeApplicationFlowList.Add(flow);
                _DalTraineeApplication.ApproveTraineeApplication(_LoginUser, _TraineeApplication,
                                                                 _TraineeApplication.TraineeApplicationStatuss);
                DiyProcess hrDiyProcess = _DalEmployeeDiyProcess.
                                          GetDiyProcessByProcessTypeAndAccountID(ProcessType.HRPrincipal,
                                                                                 _TraineeApplication.Applicant.Id);

                List <Account> accountList = new List <Account>();
                if (hrDiyProcess != null && hrDiyProcess.DiySteps != null && hrDiyProcess.DiySteps.Count > 0)
                {
                    accountList = hrDiyProcess.DiySteps[0].MailAccount;
                }
                new TraineeApplicationMailAndPhoneDelegate().ConfirmOperation(_TraineeApplication,
                                                                              accountList, _LoginUser.Id);
            }
            catch
            {
                BllUtility.ThrowException(BllExceptionConst._DbError);
            }
        }
        /// <summary>
        /// ÐÂÔöÅàѵÁ÷³Ì
        /// </summary>
        /// <param name="flow"></param>
        /// <param name="trainAppID"></param>
        /// <returns></returns>
        private static int InsertTraineeApplicationFlow(TraineeApplicationFlow flow, int trainAppID)
        {
            int        pkid;
            SqlCommand cmd = new SqlCommand();

            cmd.Parameters.Add(_PKID, SqlDbType.Int).Direction           = ParameterDirection.Output;
            cmd.Parameters.Add(_TrainAppID, SqlDbType.Int).Value         = trainAppID;
            cmd.Parameters.Add(_OperatorID, SqlDbType.Int).Value         = flow.Account.Id;
            cmd.Parameters.Add(_OperationTime, SqlDbType.DateTime).Value = flow.OperationTime;
            cmd.Parameters.Add(_Operation, SqlDbType.Int).Value          = Convert.ToInt32(flow.TraineeApplicationStatus.Id);
            if (flow.Remark == null)
            {
                cmd.Parameters.Add(_Remark, SqlDbType.NVarChar, 200).Value = DBNull.Value;
            }
            else
            {
                cmd.Parameters.Add(_Remark, SqlDbType.NVarChar, 200).Value = flow.Remark;
            }
            SqlHelper.ExecuteNonQueryReturnPKID("InsertTrainAppFlow", cmd, out pkid);
            return(pkid);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="trainAppID"></param>
        /// <returns></returns>
        public List <TraineeApplicationFlow> GetApplicationFlows(int trainAppID)
        {
            SqlCommand cmd = new SqlCommand();
            List <TraineeApplicationFlow> flows = new List <TraineeApplicationFlow>();

            cmd.Parameters.Add(_TrainAppID, SqlDbType.Int).Value = trainAppID;
            using (
                SqlDataReader sdr =
                    SqlHelper.ExecuteReader("GetTrainAppFlowByTrainAppID", cmd))
            {
                while (sdr.Read())
                {
                    TraineeApplicationFlow flow =
                        new TraineeApplicationFlow(new Account(Convert.ToInt32(sdr[_DBOperatorID]), string.Empty, string.Empty),
                                                   Convert.ToDateTime(sdr[_DBOperationTime]),
                                                   TraineeApplicationStatus.FindTraineeApplicationStatus(
                                                       Convert.ToInt32(sdr[_DBOperation])));
                    flow.Remark = sdr[_DBRemark].ToString();
                    flow.TraineeApplicationFlowID = Convert.ToInt32(sdr[_DBPKID]);
                    flows.Add(flow);
                }
                return(flows);
            }
        }