/// <summary> /// 获得员工AccountID的人事负责人 /// </summary> /// <param name="accountId"></param> /// <returns></returns> public List <Account> GetHRPrincipalByAccountID(int accountId) { List <Account> retList = new List <Account>(); DiyProcess processHRPrincipal = _DiyEmployeeProcessDal.GetDiyProcessByProcessTypeAndAccountID(ProcessType.HRPrincipal, accountId); if (processHRPrincipal == null || processHRPrincipal.DiySteps == null) { return(retList); } foreach (DiyStep diystep in processHRPrincipal.DiySteps) { if (diystep.MailAccount == null) { continue; } foreach (Account account in diystep.MailAccount) { Account accounttemp = _IAccountBll.GetAccountById(account.Id); if (accounttemp == null) { continue; } retList.Add(accounttemp); } } return(retList); }
public void OKEvent(object source, EventArgs e) { DiyProcessValidater diyProcessValidater = new DiyProcessValidater(_ItsView); if (diyProcessValidater.Vaildate()) { try { _ItsView.ResultMessage = string.Empty; DiyProcessDataCollector dataCollector = new DiyProcessDataCollector(_ItsView); DiyProcess diyProcess = new DiyProcess(); dataCollector.CompleteTheObject(ref diyProcess); _IDiyProcessFacade.UpdateDiyProcess(diyProcess); GoToListPage(); } catch (Exception ex) { _ItsView.ResultMessage = //" <img src='../../image/icon03.jpg' align='absmiddle'' /> <span class='fontred'>" + ex.Message;// +"</span>"; } } }
/// <summary> /// 新增自定义流程 /// </summary> /// <param name="diyProcess"></param> /// <returns></returns> public int InsertDiyProcess(DiyProcess diyProcess) { SqlConnection _Conn = new SqlConnection(SqlHelper._ConnectionStringProfile); _Conn.Open(); SqlTransaction _Trans = _Conn.BeginTransaction(IsolationLevel.ReadUncommitted); int pkid; try { SqlCommand cmd = new SqlCommand(); cmd.Parameters.Add(_Name, SqlDbType.NVarChar, 50).Value = diyProcess.Name; cmd.Parameters.Add(_Type, SqlDbType.Int).Value = diyProcess.Type.Id; cmd.Parameters.Add(_Remark, SqlDbType.Text).Value = diyProcess.Remark; cmd.Parameters.Add(_PKID, SqlDbType.Int).Direction = ParameterDirection.Output; SqlHelper.ExecuteNonQueryReturnPKID("InsertDiyProcess", cmd, out pkid); //循环新增每一个项 for (int i = 0; i < diyProcess.DiySteps.Count; i++) { InsertDiySteps(pkid, diyProcess.DiySteps[i], _Conn, _Trans); } _Trans.Commit(); } catch { _Trans.Rollback(); throw; } finally { _Conn.Close(); } return(pkid); }
/// <summary> /// 将DiyProcess对象转化为字符串 /// </summary> public static string ConvertToString(DiyProcess process) { string strProcess = String.Empty; if (process == null || process.DiySteps == null || process.DiySteps.Count == 0) { return(strProcess); } foreach (DiyStep step in process.DiySteps) { strProcess += step.DiyStepID + "|" + step.Status + "|" + step.OperatorType.Id + "|" + step.OperatorID + "|"; foreach (Account account in step.MailAccount) { strProcess += account.Id + ","; } strProcess += ";"; } if (strProcess.Length > 0) { strProcess = strProcess.Substring(0, strProcess.Length - 1); } return(strProcess); }
///// <summary> ///// ///// </summary> ///// <param name="employee"></param> ///// <returns></returns> //public int InsertEmployeeDiyProcess(Employee employee) //{ // SqlConnection _Conn = new SqlConnection(SqlHelper._ConnectionStringProfile); // _Conn.Open(); // SqlTransaction _Trans = _Conn.BeginTransaction(IsolationLevel.ReadUncommitted); // int pkid; // try // { // SqlCommand cmd = new SqlCommand(); // cmd.Parameters.Add(_Type, SqlDbType.Int).Value = employee.DiyProcessList[0].Type.Id; // cmd.Parameters.Add(_AccountID, SqlDbType.Int).Value = employee.Account.Id; // SqlHelper.ExecuteNonQuery("DeleteEmployeeDiyProcessByAccountIDAndType", cmd); // cmd = new SqlCommand(); // cmd.Parameters.Add(_DiyProcessID, SqlDbType.Int).Value = employee.DiyProcessList[0].ID; // cmd.Parameters.Add(_AccountID, SqlDbType.Int).Value = employee.Account.Id; // cmd.Parameters.Add(_PKID, SqlDbType.Int).Direction = ParameterDirection.Output; // SqlHelper.ExecuteNonQueryReturnPKID("InsertEmployeeDiyProcess", cmd, out pkid); // _Trans.Commit(); // } // catch // { // _Trans.Rollback(); // throw; // } // finally // { // _Conn.Close(); // } // return pkid; //} ///<summary> ///</summary> ///<param name="accountID"></param> ///<param name="diyProcess"></param> ///<returns></returns> public int InsertEmployeeDiyProcess(int accountID, DiyProcess diyProcess) { SqlConnection _Conn = new SqlConnection(SqlHelper._ConnectionStringProfile); _Conn.Open(); SqlTransaction _Trans = _Conn.BeginTransaction(IsolationLevel.ReadUncommitted); int pkid; try { SqlCommand cmd = new SqlCommand(); cmd.Parameters.Add(_Type, SqlDbType.Int).Value = diyProcess.Type.Id; cmd.Parameters.Add(_AccountID, SqlDbType.Int).Value = accountID; SqlHelper.ExecuteNonQuery("DeleteEmployeeDiyProcessByAccountIDAndType", cmd); cmd = new SqlCommand(); cmd.Parameters.Add(_DiyProcessID, SqlDbType.Int).Value = diyProcess.ID; cmd.Parameters.Add(_AccountID, SqlDbType.Int).Value = accountID; cmd.Parameters.Add(_PKID, SqlDbType.Int).Direction = ParameterDirection.Output; SqlHelper.ExecuteNonQueryReturnPKID("InsertEmployeeDiyProcess", cmd, out pkid); _Trans.Commit(); } catch { _Trans.Rollback(); throw; } finally { _Conn.Close(); } return(pkid); }
private static void AddInsertParameters(SqlCommand cm, PositionApplication positionApplication) { cm.Parameters.AddWithValue("@Applicant", positionApplication.Account.Id); cm.Parameters.AddWithValue("@IsPublish", positionApplication.IsPublish); cm.Parameters.AddWithValue("@Type", positionApplication.Type.Id); cm.Parameters.AddWithValue("@Status", positionApplication.Status.Id); cm.Parameters.AddWithValue("@NextStep", positionApplication.NextStep.DiyStepID); cm.Parameters.AddWithValue("@DiyProcess", DiyProcess.ConvertToString(positionApplication.DiyProcess)); cm.Parameters.AddWithValue("@PositionID", positionApplication.Position.Id); cm.Parameters.AddWithValue("@PositionName", positionApplication.Position.Name); cm.Parameters.AddWithValue("@PositionDescription", positionApplication.Position.Description); cm.Parameters.AddWithValue("@LevelId", positionApplication.Position.Grade.Id); cm.Parameters.AddWithValue("@Summary", positionApplication.Position.Summary); cm.Parameters.AddWithValue("@MainDuties", positionApplication.Position.MainDuties); cm.Parameters.AddWithValue("@ReportScope", positionApplication.Position.ReportScope); cm.Parameters.AddWithValue("@ControlScope", positionApplication.Position.ControlScope); cm.Parameters.AddWithValue("@Coordination", positionApplication.Position.Coordination); cm.Parameters.AddWithValue("@Authority", positionApplication.Position.Authority); cm.Parameters.AddWithValue("@Education", positionApplication.Position.Education); cm.Parameters.AddWithValue("@ProfessionalBackground", positionApplication.Position.ProfessionalBackground); cm.Parameters.AddWithValue("@WorkExperience", positionApplication.Position.WorkExperience); cm.Parameters.AddWithValue("@Qualification", positionApplication.Position.Qualification); cm.Parameters.AddWithValue("@Competence", positionApplication.Position.Competence); cm.Parameters.AddWithValue("@OtherRequirements", positionApplication.Position.OtherRequirements); cm.Parameters.AddWithValue("@KnowledgeAndSkills", positionApplication.Position.KnowledgeAndSkills); cm.Parameters.AddWithValue("@RelatedProcesses", positionApplication.Position.RelatedProcesses); cm.Parameters.AddWithValue("@ManagementSkills", positionApplication.Position.ManagementSkills); cm.Parameters.AddWithValue("@AuxiliarySkills", positionApplication.Position.AuxiliarySkills); }
private static PositionApplication FetchObject(IDataRecord sdr) { PositionApplication positionApplication = new PositionApplication(); positionApplication.PKID = (int)sdr["PKID"]; positionApplication.Account = new Account((int)sdr["Applicant"], "", ""); positionApplication.IsPublish = (int)sdr["IsPublish"]; positionApplication.Type = AppType.FindAppType((int)sdr["Type"]); positionApplication.Status = RequestStatus.FindRequestStatus((int)sdr["Status"]); positionApplication.NextStep = new DiyStep((int)sdr["NextStep"]); positionApplication.DiyProcess = DiyProcess.ConvertToObject(sdr["DiyProcess"].ToString()); positionApplication.Position = new Position((int)sdr["PositionID"], sdr["PositionName"].ToString(), new PositionGrade((int)sdr["LevelId"], "", "")); positionApplication.Position.Description = sdr["PositionDescription"].ToString(); positionApplication.Position.Summary = sdr["Summary"].ToString(); positionApplication.Position.MainDuties = sdr["MainDuties"].ToString(); positionApplication.Position.ReportScope = sdr["ReportScope"].ToString(); positionApplication.Position.ControlScope = sdr["ControlScope"].ToString(); positionApplication.Position.Coordination = sdr["Coordination"].ToString(); positionApplication.Position.Authority = sdr["Authority"].ToString(); positionApplication.Position.Education = sdr["Education"].ToString(); positionApplication.Position.ProfessionalBackground = sdr["ProfessionalBackground"].ToString(); positionApplication.Position.WorkExperience = sdr["WorkExperience"].ToString(); positionApplication.Position.Qualification = sdr["Qualification"].ToString(); positionApplication.Position.Competence = sdr["Competence"].ToString(); positionApplication.Position.OtherRequirements = sdr["OtherRequirements"].ToString(); positionApplication.Position.KnowledgeAndSkills = sdr["KnowledgeAndSkills"].ToString(); positionApplication.Position.RelatedProcesses = sdr["RelatedProcesses"].ToString(); positionApplication.Position.ManagementSkills = sdr["ManagementSkills"].ToString(); positionApplication.Position.AuxiliarySkills = sdr["AuxiliarySkills"].ToString(); return(positionApplication); }
/// <summary> /// </summary> public static DiyProcess GetDiyProcess(string processtest) { List <DiyStep> diyStepList = new List <DiyStep>(); string diyProcess = processtest; string[] diySteps = diyProcess.Split(';'); foreach (string diyStep in diySteps) { string[] steps = diyStep.Split('|'); if (steps.Length > 4) { DiyStep step = new DiyStep(Convert.ToInt32(steps[0]), steps[1], new OperatorType(Convert.ToInt32(steps[2]), OperatorType.FindOperatorTypeByID(Convert.ToInt32(steps[2]))), Convert.ToInt32(steps[3])); string[] mailAccounts = steps[4].Split(','); foreach (string mailAccount in mailAccounts) { if (!string.IsNullOrEmpty(mailAccount)) { step.MailAccount.Add(new Account(Convert.ToInt32(mailAccount), "", "")); } } diyStepList.Add(step); } } DiyProcess diyprocess = new DiyProcess(); diyprocess.DiySteps = diyStepList; return(diyprocess); }
/// <summary> /// 获取某人流程中的详细步骤 /// </summary> /// <param name="accountId">员工id</param> /// <param name="DiyprocessId">diy流程id</param> /// <returns></returns> public string GetDiyProcessStepString(int accountId, int DiyprocessId) { DiyProcess process = _DiyProcessDal.GetDiyProcessByPKID(DiyprocessId); Account account = _IAccountBll.GetAccountById(accountId); StringBuilder steps = new StringBuilder(); if (process != null) { if (process.DiySteps != null) { if (process.Type.Id.Equals(ProcessType.ApplicationTypeOut.Id) || process.Type.Id.Equals(ProcessType.ApplicationTypeOverTime.Id)) { return(steps.Append(GetOutAndOverWorkOperator(process, account)).ToString()); } if (process.Type.Id.Equals(ProcessType.HRPrincipal.Id)) { foreach (DiyStep step in process.DiySteps) { steps.Append(GetHRPrincipalProcessString(step)); steps.Append(";"); } return(steps.ToString()); } foreach (DiyStep step in process.DiySteps) { steps.Append(GetStepOperator(account, step)); steps.Append(";"); } return(steps.ToString()); } } return(steps.ToString()); }
///<summary> ///</summary> public static string DiyProcessToString(DiyProcess diyProcess) { StringBuilder processtext = new StringBuilder(); if (diyProcess != null && diyProcess.DiySteps != null) { foreach (DiyStep step in diyProcess.DiySteps) { processtext.Append(step.DiyStepID); processtext.Append("|"); processtext.Append(step.Status); processtext.Append("|"); processtext.Append(step.OperatorType.Id); processtext.Append("|"); processtext.Append(step.OperatorID); processtext.Append("|"); foreach (Account account in step.MailAccount) { processtext.Append(account.Id); processtext.Append(","); } processtext.Append(";"); } } return(processtext.ToString()); }
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> public int GetNextStep(int step, DiyProcess diyprocess) { DiyProcess diyProcess = diyprocess; if (step >= diyProcess.DiySteps.Count) { step = -1; } return(step); }
public void CompleteTheObject(ref DiyProcess theObjectToComplete) { theObjectToComplete = new DiyProcess(); theObjectToComplete.ID = string.IsNullOrEmpty(_ItsView.DiyProcessID) ? 0 : Convert.ToInt32(_ItsView.DiyProcessID); theObjectToComplete.Name = _ItsView.Name; theObjectToComplete.Remark = _ItsView.Remark; theObjectToComplete.Type = _ItsView.ProcessType; theObjectToComplete.DiySteps = CollerctDiySteps(); }
public bool DataBind(int diyProcessID) { DiyProcess theDataToBind = _IDiyProcessFacade.GetDiyProcessByPKID(diyProcessID); if (theDataToBind != null) { _ItsView.DiyProcessID = theDataToBind.ID.ToString(); _ItsView.Name = theDataToBind.Name; _ItsView.Remark = theDataToBind.Remark; _ItsView.ProcessType = theDataToBind.Type; return(true); } return(false); }
/// <summary> /// 根据PKID获取自定义流程 /// </summary> /// <param name="id"></param> /// <returns></returns> public DiyProcess GetDiyProcessByPKID(int id) { DiyProcess iRet = _DiyProcessDal.GetDiyProcessByPKID(id); if (iRet != null && iRet.DiySteps != null) { for (int i = 0; i < iRet.DiySteps.Count; i++) { for (int j = 0; j < iRet.DiySteps[i].MailAccount.Count; j++) { iRet.DiySteps[i].MailAccount[j] = _IAccountBll.GetAccountById(iRet.DiySteps[i].MailAccount[j].Id); } } } return(iRet); }
/// <summary> /// 给要抄送的人发邮件,主要是人事,所以,在整个外出单审核结束后发送 /// </summary> private List <string> SendMailToMailCC() { DiyProcess diyProcess = _TraineeApplication.TraineeApplicationDiyProcess; List <string> mailToList = new List <string>(); foreach (Account account in diyProcess.DiySteps[diyProcess.DiySteps.Count - 1].MailAccount) { Account innaccount = _AccountBll.GetAccountById(account.Id); mailToList.AddRange(TraineeApplicationUtility.GetMail(innaccount)); } foreach (Account account in _TraineeApplication.CurrentStep.MailAccount) { Account innaccount = _AccountBll.GetAccountById(account.Id); mailToList.AddRange(TraineeApplicationUtility.GetMail(innaccount)); } return(mailToList); }
public bool DataBindDiyStepList(int diyProcessID) { DiyProcess theDataToBind = _IDiyProcessFacade.GetDiyProcessByPKID(diyProcessID); if (theDataToBind != null) { for (int i = 0; i < theDataToBind.DiySteps.Count; i++) { theDataToBind.DiySteps[i].IfSystem = (theDataToBind.DiySteps[i].Status == "提交") || (theDataToBind.DiySteps[i].Status == "取消") || (theDataToBind.DiySteps[i].Status == "发信"); } _ItsView.DiyStepList = CollerctDiySteps(theDataToBind.DiySteps); return(true); } return(false); }
/// <summary> /// 获取员工的自定义流程 /// </summary> /// <param name="accountId"></param> /// <returns></returns> public List <DiyProcess> GetEmployeeDiyProcesses(int accountId) { List <DiyProcess> processes = new List <DiyProcess>(); DiyProcess leaveRequst = _DiyEmployeeProcessDal.GetDiyProcessByProcessTypeAndAccountID(ProcessType.LeaveRequest, accountId); if (leaveRequst != null) { processes.Add(leaveRequst); } DiyProcess outProcess = _DiyEmployeeProcessDal.GetDiyProcessByProcessTypeAndAccountID(ProcessType.ApplicationTypeOut, accountId); if (outProcess != null) { processes.Add(outProcess); } DiyProcess overProcess = _DiyEmployeeProcessDal.GetDiyProcessByProcessTypeAndAccountID(ProcessType.ApplicationTypeOverTime, accountId); if (overProcess != null) { processes.Add(overProcess); } DiyProcess assess = _DiyEmployeeProcessDal.GetDiyProcessByProcessTypeAndAccountID(ProcessType.Assess, accountId); if (assess != null) { processes.Add(assess); } DiyProcess hrPrincipal = _DiyEmployeeProcessDal.GetDiyProcessByProcessTypeAndAccountID(ProcessType.HRPrincipal, accountId); if (hrPrincipal != null) { processes.Add(hrPrincipal); } //DiyProcess reimburse = _DiyEmployeeProcessDal.GetDiyProcessByProcessTypeAndAccountID(ProcessType.Reimburse, accountId); //if (reimburse != null) // processes.Add(reimburse); DiyProcess traineeApplication = _DiyEmployeeProcessDal.GetDiyProcessByProcessTypeAndAccountID(ProcessType.TraineeApplication, accountId); if (traineeApplication != null) { processes.Add(traineeApplication); } return(processes); }
/// <summary> /// /// </summary> /// <param name="step"></param> /// <param name="accountID"></param> /// <returns></returns> public List <string> GetAccountMailListByDiyProcessIDAccountID(DiyStep step, int accountID) { List <string> mailToList = new List <string>(); List <Account> accounts = step.MailAccount; for (int i = 0; i < step.MailRole.Count; i++) { DiyProcess hrProcess = _DiyEmployeeProcessDal.GetDiyProcessByProcessTypeAndAccountID(step.MailRole[i], accountID); accounts.AddRange(hrProcess.DiySteps[0].MailAccount); } foreach (Account account in accounts) { Account innaccount = _IAccountBll.GetAccountById(account.Id); mailToList.AddRange(HrmisUtility.GetMail(innaccount)); } RequestUtility.CleanMailAddress(mailToList); return(mailToList); }
///<summary> /// 根据自定义流程类型获取自定义流程 ///</summary> ///<param name="processTypeId"></param> ///<returns></returns> public List <DiyProcess> GetDiyProcessByProcessType(int processTypeId) { List <DiyProcess> diyProcesses = new List <DiyProcess>(); SqlCommand cmd = new SqlCommand(); cmd.Parameters.Add(_Type, SqlDbType.Int).Value = processTypeId; using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetDiyProcessByProcessType", cmd)) { while (sdr.Read()) { DiyProcess diyProcess = new DiyProcess((int)sdr[_DBPKID], sdr[_DBName].ToString(), sdr[_DBRemark].ToString(), new ProcessType((int)sdr[_DBType], ProcessType.FindProcessTypeByID((int)sdr[_DBType]))); diyProcesses.Add(diyProcess); } } return(diyProcesses); }
/// <summary> /// 收集所选的diy流程数据 /// </summary> private void HandleDiyProcess() { _TheEmployeeToComplete.DiyProcessList = new List <DiyProcess>(); DiyProcess leaveRequest = new DiyProcess(_ItsView.leaveProcessId, string.Empty, string.Empty, ProcessType.LeaveRequest); DiyProcess outProcess = new DiyProcess(_ItsView.outProcessId, string.Empty, string.Empty, ProcessType.ApplicationTypeOut); DiyProcess overTimeProcess = new DiyProcess(_ItsView.OverTimeProcessId, string.Empty, string.Empty, ProcessType.ApplicationTypeOverTime); DiyProcess asseseeProcess = new DiyProcess(_ItsView.AssessProcessId, string.Empty, string.Empty, ProcessType.Assess); DiyProcess hrPrincipal = new DiyProcess(_ItsView.HRPrincipalProcessId, string.Empty, string.Empty, ProcessType.HRPrincipal); //DiyProcess reimburse = new DiyProcess(_ItsView.ReimburseProcessId, string.Empty, string.Empty, ProcessType.Reimburse); DiyProcess traineeApplicationProcess = new DiyProcess(_ItsView.TraineeApplicationProcessId, string.Empty, string.Empty, ProcessType.TraineeApplication); _TheEmployeeToComplete.DiyProcessList.Add(leaveRequest); _TheEmployeeToComplete.DiyProcessList.Add(outProcess); _TheEmployeeToComplete.DiyProcessList.Add(overTimeProcess); _TheEmployeeToComplete.DiyProcessList.Add(asseseeProcess); _TheEmployeeToComplete.DiyProcessList.Add(hrPrincipal); //_TheEmployeeToComplete.DiyProcessList.Add(reimburse); _TheEmployeeToComplete.DiyProcessList.Add(traineeApplicationProcess); }
/// <summary> /// 根据自定义流程 /// </summary> /// <param name="diyProcessID"></param> /// <returns></returns> public DiyProcess GetDiyProcessByPKID(int diyProcessID) { DiyProcess diyProcess = null; SqlCommand cmd = new SqlCommand(); cmd.Parameters.Add(_PKID, SqlDbType.Int).Value = diyProcessID; using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetDiyProcessByPKID", cmd)) { while (sdr.Read()) { diyProcess = new DiyProcess((int)sdr[_DBPKID], sdr[_DBName].ToString(), sdr[_DBRemark].ToString(), new ProcessType((int)sdr[_DBType], ProcessType.FindProcessTypeByID((int)sdr[_DBType]))); } } if (diyProcess != null) { diyProcess.DiySteps = GetDiyStepsByDiyProcessID(diyProcessID); } return(diyProcess); }
/// <summary> /// </summary> public bool CanChangeAdjust(DiyProcess diyProcess, OutApplicationItem item) { if (item.Status.Id == RequestStatus.Cancelled.Id || item.Status.Id == RequestStatus.CancelApproving.Id) { return(false); } List <OutApplicationFlow> flowList = item.OutApplicationFlow; if (flowList != null && diyProcess != null && diyProcess.DiySteps != null && flowList.Count > 0) { int step = flowList[flowList.Count - 1].Step; if (step == -1) { return(false); } int nowStep = step + 1; if (diyProcess.DiySteps[nowStep - 1].Status.Contains("Еїан")) { return(true); } } return(false); }
/// <summary> /// /// </summary> public Account GetNextOperator(DiyProcess diyProcess, int nowStep, int accountId) { if (nowStep == -1) { return(null); } Account retAccount; if (nowStep >= diyProcess.DiySteps.Count) { return(null); } DiyStep diystep = diyProcess.DiySteps[nowStep - 1]; if (diystep.OperatorID > 0) { retAccount = _AccountBll.GetAccountById(diystep.OperatorID); } else { retAccount = GetAccountByOperatorType(diystep.OperatorType, accountId); } return(retAccount); }
/// <summary> /// 通过帐号ID查找相关的帐套项 /// </summary> /// <param name="leaveRequestID"></param> /// <param name="diyProcess"></param> /// <returns></returns> private static List <LeaveRequestItem> GetLeaveRequestItemByLeaveRequestID(int leaveRequestID, DiyProcess diyProcess) { List <LeaveRequestItem> leaveRequestItemList = new List <LeaveRequestItem>(); SqlCommand cmd = new SqlCommand(); cmd.Parameters.Add(_ParmLeaveRequestID, SqlDbType.Int).Value = leaveRequestID; using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetLeaveRequestItemByLeaveRequestID", cmd)) { while (sdr.Read()) { LeaveRequestItem leaveRequestItem = new LeaveRequestItem((int)sdr[_DBPKID], Convert.ToDateTime(sdr[_DBFromDate]), Convert.ToDateTime(sdr[_DBToDate]), Convert.ToDecimal(sdr[_DBAbsentHours]), RequestStatus.FindRequestStatus((int)sdr[_DBLeaveRequestStatus])); leaveRequestItem.UseList = sdr[_DBUseList].ToString(); if (diyProcess != null) { leaveRequestItem.CurrentStep = diyProcess.FindStep((int)sdr[_DBNextProcessID]); } leaveRequestItemList.Add(leaveRequestItem); } } return(leaveRequestItemList); }
/// <summary> /// /// </summary> /// <param name="diyProcess"></param> /// <param name="item"></param> /// <param name="accountId">谁都流程</param> /// <returns></returns> public Account GetNextOperator(DiyProcess diyProcess, OutApplicationItem item, int accountId) { int nowStep = item.OutApplicationFlow[item.OutApplicationFlow.Count - 1].Step; return(_RequestFindOperator.GetNextOperator(diyProcess, nowStep, accountId)); }
/// <summary> /// /// </summary> public List <Account> GetLastMailCC(DiyProcess diyprocess) { return(diyprocess.DiySteps[diyprocess.DiySteps.Count - 1].MailAccount); }
/// <summary> /// /// </summary> public List <Account> GetMailCC(List <OutApplicationFlow> flowList, DiyProcess diyprocess) { int step = flowList[flowList.Count - 1].Step; return(diyprocess.DiySteps[step - 1].MailAccount); }
/// <summary> /// </summary> public int GetNextStep(List <OutApplicationFlow> flowList, DiyProcess diyprocess) { int step = flowList[flowList.Count - 1].Step + 1; return(_RequestFindOperator.GetNextStep(step, diyprocess)); }
/// <summary> /// 得到当前这部的下一步审核人 /// </summary> public Account GetNextOperator(DiyProcess diyProcess, int step, int accountId) { return(_RequestFindOperator.GetNextOperator(diyProcess, step, accountId)); }