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); } }