/// <summary>
        ///
        /// </summary>
        protected override void ExcuteSelf()
        {
            int failCount    = 0;
            int successCount = 0;
            List <List <Account> > account = new List <List <Account> >();
            List <DiyStep>         csteps  = new List <DiyStep>();
            List <DiyStep>         nsteps  = new List <DiyStep>();

            foreach (LeaveRequestItem item in _LeaveRequest.LeaveRequestItems)
            {
                //-1 全部;0 新增;1 提交;2 审核不通过;3 审核通过;4 取消请假;5 拒绝取消假期;
                //6 批准取消假期;7 审核中;8 审核取消中
                switch (item.Status.Id)
                {
                case 1:
                case 7:
                    _RequestStatus = RequestStatus.ApprovePass;
                    break;

                case 4:
                case 8:
                    _RequestStatus = RequestStatus.ApproveCancelPass;
                    break;
                }

                try
                {
                    ApproveLeaveRequestItem approveLeaveRequestItem =
                        new ApproveLeaveRequestItem(_LeaveRequestID, item.LeaveRequestItemID, _AccountID, _RequestStatus,
                                                    _Reason, _DalLeaveRequest, _DalLeaveRequestFlow,
                                                    _DalEmployeeDiyProcess, _DalVacation,
                                                    _IAdjustRestDal, _DalPlanDutyDal, _DalLeaveRequestType);
                    List <Account> mailaccountlist;
                    DiyStep        cstep;
                    DiyStep        nstep;
                    approveLeaveRequestItem.ConfirmItem(out mailaccountlist, out cstep, out nstep);
                    if (!DiyStep.Contains(nsteps, nstep))
                    {
                        account.Add(mailaccountlist);
                        csteps.Add(cstep);
                        nsteps.Add(nstep);
                    }
                    successCount++;
                }
                catch
                {
                    failCount++;
                }

                ResultMessage = successCount + "个请假项审核成功," + failCount + "个请假项审核失败";;
            }
            for (int i = 0; i < nsteps.Count; i++)
            {
                new LeaveRequestMailAndPhoneDelegate().ConfirmOperationMail(_LeaveRequest, account[i], _AccountID,
                                                                            csteps[i], nsteps[i]);
            }
        }
        /// <summary>
        ///
        /// </summary>
        protected override void ExcuteSelf()
        {
            int failCount    = 0;
            int successCount = 0;
            List <List <Account> > account = new List <List <Account> >();
            List <DiyStep>         csteps  = new List <DiyStep>();
            List <DiyStep>         nsteps  = new List <DiyStep>();

            foreach (LeaveRequestItem item in _LeaveRequest.LeaveRequestItems)
            {
                try
                {
                    ChangeRequestStatus(item);
                    ApproveLeaveRequestItem approveLeaveRequestItem =
                        new ApproveLeaveRequestItem(_LeaveRequestID, item.LeaveRequestItemID, _AccountID, _RequestStatus,
                                                    _Reason, _DalLeaveRequest, _DalLeaveRequestFlow,
                                                    _DalEmployeeDiyProcess, _DalVacation,
                                                    _IAdjustRestDal, _DalPlanDutyDal, _DalLeaveRequestType);
                    List <Account> mailaccountlist;
                    DiyStep        cstep;
                    DiyStep        nstep;
                    approveLeaveRequestItem.ConfirmItem(out mailaccountlist, out cstep, out nstep);
                    if (!DiyStep.Contains(nsteps, nstep))
                    {
                        account.Add(mailaccountlist);
                        csteps.Add(cstep);
                        nsteps.Add(nstep);
                    }
                    successCount++;
                }
                catch
                {
                    failCount++;
                }

                ResultMessage = successCount + "个请假项审核成功," + failCount + "个请假项审核失败";;
            }
            for (int i = 0; i < nsteps.Count; i++)
            {
                new LeaveRequestMailAndPhoneDelegate().ConfirmOperationMail(_LeaveRequest, account[i], _AccountID,
                                                                            csteps[i], nsteps[i]);
            }
        }