private void 审批ToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            if (lblStatus.Text.Trim() == DimissionBillStatus.等待人力资源审阅.ToString())
            {
                if (txtHROpinion.Text.Trim() == "")
                {
                    MessageDialog.ShowPromptMessage("请填写人力资源部意见!");
                    return;
                }

                HR_DimissionBill dimission = new HR_DimissionBill();

                dimission.HR_Opinion       = txtHROpinion.Text;
                dimission.HR_Signature     = txtHRSignature.Text;
                dimission.HR_SignatureDate = dtpHRDate.Value;
                dimission.WorkID           = txtApplicant.Tag.ToString();
                dimission.Date             = dtpDate.Value;
                dimission.Reason           = txtReason.Text;

                billID = Convert.ToInt32(m_dimiServer.AddAndUpdateDimission(dimission, "人力资源部审批", out error));

                if (billID == 0)
                {
                    MessageDialog.ShowPromptMessage(error);
                    return;
                }

                MessageDialog.ShowPromptMessage("人力资源部审批成功!等待分管领导审核");

                m_billMessageServer.PassFlowMessage(billID.ToString(), string.Format("{0}号离职申请单,请分管领导审核", billID.ToString()),
                                                    BillFlowMessage_ReceivedUserType.角色,
                                                    m_billMessageServer.GetDeptLeaderRoleName(m_personnerServer.GetPersonnelViewInfo(txtApplicant.Tag.ToString()).部门编号).ToList());
            }
            else
            {
                MessageDialog.ShowPromptMessage("请确认单据状态!");
                return;
            }

            this.Close();
        }
        /// <summary>
        /// 回退单据
        /// </summary>
        /// <param name="strDJH">单据号</param>
        /// <param name="strBillStatus">单据状态</param>
        /// <param name="strRebackReason">回退状态</param>
        /// <param name="error">出错时返回错误信息,无错时返回null</param>
        /// <returns>操作成功返回True,操作失败返回False</returns>
        public bool ReturnBill(string strDJH, string strBillStatus, string strRebackReason, out string error)
        {
            error = null;

            try
            {
                DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext;

                var result = from a in dataContxt.HR_OnBusinessBill
                             where a.ID == Convert.ToInt32(strDJH)
                             select a;

                string strMsg = "";

                if (result.Count() == 1)
                {
                    HR_OnBusinessBill onBusiness = result.Single();

                    m_billMessageServer.BillType = "出差申请单";

                    DataTable dt = new PersonnelArchiveServer().GetHighestDept(onBusiness.Applicant);

                    if (dt != null && dt.Rows.Count > 0)
                    {
                        m_highDept = dt.Rows[0]["deptCode"].ToString();
                    }

                    switch (strBillStatus)
                    {
                    case "等待主管审核":
                        strMsg = string.Format("{0}号出差申请单已回退,请您重新处理单据; 回退原因为" + strRebackReason, strDJH);
                        m_billMessageServer.PassFlowMessage(strDJH, strMsg, BillFlowMessage_ReceivedUserType.角色,
                                                            m_billMessageServer.GetDeptDirectorRoleName(m_highDept).ToList());

                        onBusiness.BillStatus          = OnBusinessBillStatus.等待部门负责人审核.ToString();
                        onBusiness.Authorize           = false;
                        onBusiness.Confirmor           = "";
                        onBusiness.ConfirmorDate       = ServerTime.Time;
                        onBusiness.DeptPrincipal       = "";
                        onBusiness.DeptSignatureDate   = ServerTime.Time;
                        onBusiness.GeneralManager      = "";
                        onBusiness.GM_SignatureDate    = ServerTime.Time;
                        onBusiness.LeaderSignature     = "";
                        onBusiness.LeaderSignatureDate = ServerTime.Time;
                        onBusiness.RealBeginTime       = ServerTime.Time;
                        onBusiness.RealEndTime         = ServerTime.Time;
                        //onBusiness.Result = "";
                        break;

                    case "等待分管领导审批":
                        strMsg = string.Format("{0}号出差申请单已回退,请您重新处理单据; 回退原因为" + strRebackReason, strDJH);
                        m_billMessageServer.PassFlowMessage(strDJH, strMsg, BillFlowMessage_ReceivedUserType.角色,
                                                            m_billMessageServer.GetDeptLeaderRoleName(m_highDept).ToList());

                        onBusiness.BillStatus          = OnBusinessBillStatus.等待分管领导审批.ToString();
                        onBusiness.Confirmor           = "";
                        onBusiness.ConfirmorDate       = ServerTime.Time;
                        onBusiness.GeneralManager      = "";
                        onBusiness.GM_SignatureDate    = ServerTime.Time;
                        onBusiness.LeaderSignature     = "";
                        onBusiness.LeaderSignatureDate = ServerTime.Time;
                        onBusiness.RealBeginTime       = ServerTime.Time;
                        onBusiness.RealEndTime         = ServerTime.Time;
                        //onBusiness.Result = "";
                        break;

                    case "等待总经理批准":
                        strMsg = string.Format("{0}号出差申请单已回退,请您重新处理单据; 回退原因为" + strRebackReason, strDJH);
                        m_billMessageServer.PassFlowMessage(strDJH, strMsg, BillFlowMessage_ReceivedUserType.角色, CE_RoleEnum.总经理.ToString());

                        onBusiness.BillStatus       = OnBusinessBillStatus.等待总经理批准.ToString();
                        onBusiness.Authorize        = false;
                        onBusiness.Confirmor        = "";
                        onBusiness.ConfirmorDate    = ServerTime.Time;
                        onBusiness.GeneralManager   = "";
                        onBusiness.GM_SignatureDate = ServerTime.Time;
                        onBusiness.RealBeginTime    = ServerTime.Time;
                        onBusiness.RealEndTime      = ServerTime.Time;
                        //onBusiness.Result = "";
                        break;

                    case "等待销差人确认":
                        strMsg = string.Format("{0}号出差申请单已回退,请您重新处理单据; 回退原因为" + strRebackReason, strDJH);
                        m_billMessageServer.PassFlowMessage(strDJH, strMsg, BillFlowMessage_ReceivedUserType.用户, onBusiness.Applicant.ToString());

                        onBusiness.BillStatus    = OnBusinessBillStatus.等待销差人确认.ToString();
                        onBusiness.Confirmor     = "";
                        onBusiness.ConfirmorDate = ServerTime.Time;
                        onBusiness.RealBeginTime = ServerTime.Time;
                        onBusiness.RealEndTime   = ServerTime.Time;
                        //onBusiness.Result = "";
                        break;

                    default:
                        break;
                    }

                    dataContxt.SubmitChanges();

                    return(true);
                }
                else
                {
                    error = "数据不唯一或者为空";

                    return(false);
                }
            }
            catch (Exception ex)
            {
                error = ex.Message;

                return(false);
            }
        }
예제 #3
0
        private void 调出审批toolStripButton2_Click(object sender, EventArgs e)
        {
            if (lblStatus.Text == PostChangeStatus.等待调出部门负责人审核.ToString())
            {
                if (txtOldDeptOpinion.Text.Trim() == "")
                {
                    MessageDialog.ShowPromptMessage("请填写【调出部门负责人意见】!");
                    return;
                }

                if (!cbOldDeptAuthorize.Checked)
                {
                    if (MessageDialog.ShowEnquiryMessage("您同意【" + txtApplicant.Text + "】调出此岗位吗?") == DialogResult.Yes)
                    {
                        cbOldDeptAuthorize.Checked = true;
                    }
                }

                if (!m_PostChangeServer.UpdateOldDept(Convert.ToInt32(m_billNo), txtOldDeptOpinion.Text.Trim(), cbOldDeptAuthorize.Checked, out m_error))
                {
                    MessageDialog.ShowPromptMessage(m_error);
                    return;
                }
                else
                {
                    m_billMessageServer.PassFlowMessage(m_billNo.ToString(), string.Format("{0}号部门调动申请,请调出部门分管领导审核", m_billNo),
                                                        BillFlowMessage_ReceivedUserType.角色, m_billMessageServer.GetDeptLeaderRoleName(txtOldDept.Tag.ToString()).ToList());

                    MessageDialog.ShowPromptMessage("审批成功!");
                    this.Close();
                }
            }
            else
            {
                MessageDialog.ShowPromptMessage("请确认单据状态!");
                return;
            }
        }
예제 #4
0
        /// <summary>
        /// 更新流程
        /// </summary>
        /// <param name="billNo">单据号</param>
        /// <param name="advise">意见</param>
        /// <param name="error">错误信息</param>
        /// <returns>成功返回True,失败返回False</returns>
        public bool UpdateInfo(string billNo, string advise, out string error)
        {
            error = null;

            IBillMessagePromulgatorServer serverBill            = BasicServerFactory.GetServerModule <IBillMessagePromulgatorServer>();
            ISystemFileBasicInfo          m_serverFileBasicInfo = Service_Quality_File.ServerModuleFactory.GetServerModule <ISystemFileBasicInfo>();
            FileServiceSocket             m_serverFTP           = new FileServiceSocket(GlobalObject.GlobalParameter.FTPServerIP,
                                                                                        GlobalObject.GlobalParameter.FTPServerAdvancedUser,
                                                                                        GlobalObject.GlobalParameter.FTPServerAdvancedPassword);

            DepotManagementDataContext ctx = CommentParameter.DepotDataContext;

            try
            {
                var varData = from a in ctx.FM_InstitutionProcess
                              where a.BillNo == billNo
                              select a;

                FM_InstitutionProcess lnqProcess = varData.Single();

                serverBill.BillType = serverBill.GetBillTypeEnum(lnqProcess.TypeCode).ToString();
                CE_BillTypeEnum       billType   = GlobalObject.GeneralFunction.StringConvertToEnum <CE_BillTypeEnum>(serverBill.BillType);
                InstitutionBillStatus billStatus = GlobalObject.GeneralFunction.StringConvertToEnum <InstitutionBillStatus>(lnqProcess.BillStatus);

                var varList = from a in ctx.FM_InstitutionProcessPointDept
                              where a.BillNo == billNo
                              select a;

                FM_InstitutionProcessPointDept        lnqPoint = new FM_InstitutionProcessPointDept();
                List <FM_InstitutionProcessPointDept> list     = varList.ToList();
                List <string> listTemp = new List <string>();

                switch (billStatus)
                {
                case InstitutionBillStatus.新建流程:
                    break;

                case InstitutionBillStatus.等待科长审查:

                    lnqProcess.BillStatus  = InstitutionBillStatus.等待负责人审查.ToString();
                    lnqProcess.Chief       = BasicInfo.LoginName;
                    lnqProcess.ChiefAdvise = advise;
                    lnqProcess.ChiefTime   = ServerTime.Time;

                    serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName),
                                               BillFlowMessage_ReceivedUserType.角色, serverBill.GetDeptPrincipalRoleName(UniversalFunction.GetPersonnelInfo(lnqProcess.Propoer).部门编码).ToList());
                    break;

                case InstitutionBillStatus.等待负责人审查:

                    lnqProcess.BillStatus           = InstitutionBillStatus.等待相关负责人审查.ToString();
                    lnqProcess.DepartmentHead       = BasicInfo.LoginName;
                    lnqProcess.DepartmentHeadAdvise = advise;
                    lnqProcess.DepartmentHeadTime   = ServerTime.Time;

                    if (billType == CE_BillTypeEnum.制度销毁申请流程)
                    {
                        lnqProcess.BillStatus = InstitutionBillStatus.等待分管领导审查.ToString();

                        serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName),
                                                   BillFlowMessage_ReceivedUserType.角色, serverBill.GetDeptLeaderRoleName(UniversalFunction.GetPersonnelInfo(lnqProcess.Propoer).部门编码).ToList());
                    }
                    else
                    {
                        listTemp = (from a in list
                                    where a.PersonnelType == RoleStyle.负责人.ToString()
                                    select a.Personnel).ToList();

                        serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName),
                                                   BillFlowMessage_ReceivedUserType.用户, listTemp);
                    }

                    break;

                case InstitutionBillStatus.等待相关负责人审查:

                    lnqPoint = (from a in list
                                where a.Personnel == BasicInfo.LoginID &&
                                a.PersonnelType == RoleStyle.负责人.ToString()
                                select a).Single();

                    lnqPoint.PersonnelTime = ServerTime.Time;
                    lnqPoint.Advise        = advise;

                    var varHead = from a in list
                                  where a.PersonnelType == RoleStyle.负责人.ToString() &&
                                  a.PersonnelTime == null
                                  select a;

                    if (varHead.Count() == 0)
                    {
                        if (IsThreeTripFile(lnqProcess.SortID))
                        {
                            lnqProcess.BillStatus = InstitutionBillStatus.等待分管领导审查.ToString();

                            serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName),
                                                       BillFlowMessage_ReceivedUserType.角色, serverBill.GetDeptLeaderRoleName(UniversalFunction.GetPersonnelInfo(lnqProcess.Propoer).部门编码).ToList());
                        }
                        else
                        {
                            lnqProcess.BillStatus = InstitutionBillStatus.等待相关分管领导审查.ToString();

                            listTemp = (from a in list
                                        where a.PersonnelType == RoleStyle.分管领导.ToString()
                                        select a.Personnel).ToList();

                            serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName),
                                                       BillFlowMessage_ReceivedUserType.用户, listTemp);
                        }
                    }
                    else
                    {
                        listTemp = (from a in varHead
                                    select a.Personnel).ToList();

                        serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName),
                                                   BillFlowMessage_ReceivedUserType.用户, listTemp);
                    }

                    break;

                case InstitutionBillStatus.等待相关分管领导审查:
                    lnqPoint = (from a in list
                                where a.Personnel == BasicInfo.LoginID &&
                                a.PersonnelType == RoleStyle.分管领导.ToString()
                                select a).Single();

                    lnqPoint.PersonnelTime = ServerTime.Time;
                    lnqPoint.Advise        = advise;

                    var varLead = from a in list
                                  where a.PersonnelType == RoleStyle.分管领导.ToString() &&
                                  a.PersonnelTime == null
                                  select a;

                    if (varLead.Count() == 0)
                    {
                        lnqProcess.BillStatus = InstitutionBillStatus.等待总经理审查.ToString();

                        serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName),
                                                   BillFlowMessage_ReceivedUserType.角色, CE_RoleEnum.总经理.ToString());
                    }
                    else
                    {
                        listTemp = (from a in varLead
                                    select a.Personnel).ToList();

                        serverBill.PassFlowMessage(lnqProcess.BillNo, string.Format("【文件编号】:{0} 【文件名】:{1} ※※※ 等待处理", lnqProcess.FileNo, lnqProcess.FileName),
                                                   BillFlowMessage_ReceivedUserType.用户, listTemp);
                    }

                    break;

                case InstitutionBillStatus.等待分管领导审查:
                case InstitutionBillStatus.等待总经理审查:

                    lnqProcess.BillStatus           = InstitutionBillStatus.流程已结束.ToString();
                    lnqProcess.GeneralManager       = BasicInfo.LoginName;
                    lnqProcess.GeneralManagerAdvise = advise;
                    lnqProcess.GeneralManagerTime   = ServerTime.Time;

                    FM_FileList fileInfo = new FM_FileList();

                    if (lnqProcess.FileID != null)
                    {
                        var varFileInfo = from a in ctx.FM_FileList
                                          where a.FileID == lnqProcess.FileID
                                          select a;

                        if (varFileInfo.Count() == 1)
                        {
                            fileInfo = varFileInfo.Single();
                        }
                    }

                    if (billType == CE_BillTypeEnum.制度发布流程)
                    {
                        string strVersion = "1.0";

                        if (lnqProcess.ReplaceFileID == null)
                        {
                            DataTable dtTemp = m_serverFileBasicInfo.GetFilesInfo(lnqProcess.FileNo, null);
                        }
                        else
                        {
                            m_serverFileBasicInfo.OperatorFTPSystemFile(ctx, Convert.ToInt32(lnqProcess.ReplaceFileID), 29);
                            strVersion =
                                (Convert.ToDouble(m_serverFileBasicInfo.GetFile(Convert.ToInt32(lnqProcess.ReplaceFileID)).Version) + 0.1).ToString();
                        }

                        FM_FileList lnqFile = new FM_FileList();

                        lnqFile.Department = lnqProcess.Department;
                        lnqFile.FileName   = lnqProcess.FileName;
                        lnqFile.FileNo     = lnqProcess.FileNo;
                        lnqFile.FileUnique = lnqProcess.FileUnique;
                        lnqFile.SortID     = lnqProcess.SortID;
                        lnqFile.Version    = strVersion;

                        ctx.FM_FileList.InsertOnSubmit(lnqFile);

                        if (m_serverFTP.Errormessage.Length != 0)
                        {
                            throw new Exception(m_serverFTP.Errormessage);
                        }
                    }
                    else if (billType == CE_BillTypeEnum.制度修订废弃申请流程 && lnqProcess.OperationMode == "废弃")
                    {
                        if (fileInfo != null)
                        {
                            fileInfo.SortID = 29;
                        }
                    }
                    else if (billType == CE_BillTypeEnum.制度销毁申请流程)
                    {
                        ctx.FM_FileList.DeleteOnSubmit(fileInfo);
                    }

                    serverBill.EndFlowMessage(lnqProcess.BillNo,
                                              string.Format("{0}号文件审查流程已结束", lnqProcess.BillNo), null,
                                              (from a in varList select a.Personnel).ToList());

                    break;

                case InstitutionBillStatus.流程已结束:
                    break;

                default:
                    break;
                }

                ctx.SubmitChanges();

                return(true);
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return(false);
            }
        }
예제 #5
0
        /// <summary>
        /// 添加信息
        /// </summary>
        /// <param name="institution">LINQ信息</param>
        /// <param name="deptList">部门信息</param>
        /// <param name="billEnum">单据类型</param>
        /// <param name="error">错误信息</param>
        /// <returns>成功返回True</returns>
        public bool AddInfo(FM_InstitutionProcess institution, List <string> deptList, out string error)
        {
            error = null;

            DepotManagementDataContext    ctx        = CommentParameter.DepotDataContext;
            IBillMessagePromulgatorServer serverBill = BasicServerFactory.GetServerModule <IBillMessagePromulgatorServer>();

            serverBill.BillType = serverBill.GetBillTypeEnum(institution.TypeCode).ToString();

            try
            {
                institution.Propoer     = BasicInfo.LoginName;
                institution.PropoerTime = ServerTime.Time;
                institution.BillStatus  = InstitutionBillStatus.等待科长审查.ToString();

                ctx.FM_InstitutionProcess.InsertOnSubmit(institution);

                List <FM_InstitutionProcessPointDept> listPoint = new List <FM_InstitutionProcessPointDept>();
                FM_InstitutionProcessPointDept        tempLnq   = new FM_InstitutionProcessPointDept();

                if (deptList != null)
                {
                    foreach (string item in deptList)
                    {
                        List <string> list = serverBill.GetUserCodes(serverBill.GetDeptPrincipalRoleName(item).ToList(), null);
                        foreach (string workID in list)
                        {
                            tempLnq = new FM_InstitutionProcessPointDept();

                            tempLnq.BillNo        = institution.BillNo;
                            tempLnq.PersonnelType = RoleStyle.负责人.ToString();
                            tempLnq.Personnel     = workID;

                            listPoint.Add(tempLnq);
                        }

                        if (!IsThreeTripFile(institution.SortID))
                        {
                            list = serverBill.GetUserCodes(serverBill.GetDeptLeaderRoleName(item).ToList(), null);
                            foreach (string workID in list)
                            {
                                tempLnq = new FM_InstitutionProcessPointDept();

                                tempLnq.BillNo        = institution.BillNo;
                                tempLnq.PersonnelType = RoleStyle.分管领导.ToString();
                                tempLnq.Personnel     = workID;

                                listPoint.Add(tempLnq);
                            }
                        }
                    }

                    var varData = (from a in listPoint
                                   select new { a.BillNo, a.Personnel, a.PersonnelType }).Distinct();

                    listPoint = new List <FM_InstitutionProcessPointDept>();

                    foreach (var item in varData)
                    {
                        tempLnq = new FM_InstitutionProcessPointDept();

                        tempLnq.PersonnelType = item.PersonnelType;
                        tempLnq.Personnel     = item.Personnel;
                        tempLnq.BillNo        = item.BillNo;

                        listPoint.Add(tempLnq);
                    }

                    ctx.FM_InstitutionProcessPointDept.InsertAllOnSubmit(listPoint);
                }

                ctx.SubmitChanges();

                serverBill.DestroyMessage(institution.BillNo);
                serverBill.SendNewFlowMessage(institution.BillNo,
                                              string.Format("{0}号文件审查流程已提交,请等待上级审核", institution.BillNo),
                                              BillFlowMessage_ReceivedUserType.角色, serverBill.GetSuperior(CE_RoleStyleType.级领导, BasicInfo.LoginID));

                return(true);
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return(false);
            }
        }
        private void 提交单据ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (lblStatus.Text.Trim() == OverTimeBillStatus.新建单据.ToString())
            {
                if (!CheckControl())
                {
                    return;
                }

                List <HR_OvertimePersonnel> lstPersonnel = new List <HR_OvertimePersonnel>(dataGridView2.Rows.Count);

                for (int i = 0; i < dataGridView2.Rows.Count; i++)
                {
                    HR_OvertimePersonnel       personnel = new HR_OvertimePersonnel();
                    DataGridViewCellCollection cells     = dataGridView2.Rows[i].Cells;

                    personnel.WorkID = dataGridView2.Rows[i].Cells["员工编号"].Value.ToString();
                    lstPersonnel.Add(personnel);
                }

                HR_OvertimeBill overTimeBill = new HR_OvertimeBill();

                overTimeBill.Applicant         = txtApplicant.Tag.ToString();
                overTimeBill.Authorize         = false;
                overTimeBill.BeginTime         = dtpBeginTime.Value;
                overTimeBill.CompensateMode    = cmbCompensateMode.Text;
                overTimeBill.Date              = ServerTime.Time;
                overTimeBill.Errand            = txtErrand.Text;
                overTimeBill.Hours             = numHours.Value;
                overTimeBill.RealHours         = Convert.ToDouble(numHours.Value);
                overTimeBill.NumberOfPersonnel = Convert.ToInt32(txtNumOfPersonnel.Text);
                overTimeBill.VerifyFinish      = false;
                overTimeBill.EndTime           = dtpEndTime.Value;
                overTimeBill.OvertimeAddress   = cmbOvertimeAddress.Text;

                IQueryable <View_HR_PersonnelArchive> directorGroup1 = m_personnerServer.GetDeptDirector(
                    m_personnerServer.GetPersonnelInfo(txtApplicant.Tag.ToString()).Dept, "1");

                bool flagPri        = false; //判断申请人是不是负责人
                bool isDeptDirector = false; //申请部门有没有主管

                if (directorGroup1 != null && directorGroup1.Count() > 0)
                {
                    foreach (var item in directorGroup1)
                    {
                        if (BasicInfo.LoginID == item.员工编号)
                        {
                            flagPri = true;

                            break;
                        }
                    }
                }

                IQueryable <View_HR_PersonnelArchive> directorGroup = m_personnerServer.GetDeptDirector(
                    m_personnerServer.GetPersonnelInfo(txtApplicant.Tag.ToString()).Dept, "0");
                bool flag = false;//判断申请人是不是主管

                if (directorGroup != null && directorGroup.Count() > 0)
                {
                    isDeptDirector = true;

                    foreach (var item in directorGroup)
                    {
                        if (BasicInfo.LoginID == item.员工编号)
                        {
                            flag = true;

                            break;
                        }
                    }
                }

                if (!flag && !flagPri)
                {
                    if (isDeptDirector)
                    {
                        overTimeBill.BillStatus = OverTimeBillStatus.等待主管审核.ToString();
                    }
                    else
                    {
                        overTimeBill.BillStatus = OverTimeBillStatus.等待部门负责人审核.ToString();
                    }
                }
                else if (flag && !flagPri)
                {
                    overTimeBill.BillStatus = OverTimeBillStatus.等待部门负责人审核.ToString();
                }
                else
                {
                    overTimeBill.BillStatus = OverTimeBillStatus.等待分管领导审批.ToString();
                }

                m_billNo = m_overTimeServer.AddOverTimeBill(overTimeBill, lstPersonnel, out error).ToString();

                if (Convert.ToInt32(m_billNo) < 0)
                {
                    MessageDialog.ShowPromptMessage(error);
                    return;
                }
                else
                {
                    MessageDialog.ShowPromptMessage("新增成功!");

                    m_billMessageServer.DestroyMessage(m_billNo);

                    if (overTimeBill.BillStatus.Equals(OverTimeBillStatus.等待主管审核.ToString()))
                    {
                        m_billMessageServer.SendNewFlowMessage(m_billNo, string.Format("{0}号加班申请单,请主管审核", m_billNo),
                                                               BillFlowMessage_ReceivedUserType.角色,
                                                               m_billMessageServer.GetDeptDirectorRoleName(m_personnerServer.GetPersonnelViewInfo(
                                                                                                               txtApplicant.Tag.ToString()).部门编号).ToList());
                    }
                    else if (overTimeBill.BillStatus == OverTimeBillStatus.等待部门负责人审核.ToString())
                    {
                        m_billMessageServer.SendNewFlowMessage(m_billNo, string.Format("{0}号加班申请单,请部门负责人审核", m_billNo),
                                                               BillFlowMessage_ReceivedUserType.角色, m_billMessageServer.GetDeptPrincipalRoleName(
                                                                   m_personnerServer.GetPersonnelViewInfo(txtApplicant.Tag.ToString()).部门编号).ToList());
                    }
                    else
                    {
                        m_billMessageServer.SendNewFlowMessage(m_billNo, string.Format("{0}号加班申请单,请分管领导审核", m_billNo),
                                                               BillFlowMessage_ReceivedUserType.角色, m_billMessageServer.GetDeptLeaderRoleName(
                                                                   m_personnerServer.GetPersonnelViewInfo(txtApplicant.Tag.ToString()).部门编号).ToList());
                    }
                }
            }
            else
            {
                MessageDialog.ShowPromptMessage("请确认单据状态!");
                return;
            }
            this.Close();
        }