递归

        /// <summary>
        /// 递归查询转件人,如果第一次没有查到就继续向上一级查找
        /// </summary>
        /// <param name="DepID"></param>
        /// <returns></returns>
        public string GetLeaderUserNo(string DepID, string ApplyMainID)
        {
            string strLeaderUserNo = "";
            List<Model.DepartmentInfo> depKZ = new Model.DepartmentInfo().GetModelList(new List<string> { " and  DelFlag=0 and ID 
            =" + DepID }, new List<string> { "*" });
            List<Model.ApplyDetailInOut> lInOut = new Model.ApplyDetailInOut().GetModelList(new List<string> { "and ApplyMainID='" + 
            ApplyMainID + "'" }, new List<string> { "*" });                                                     
            List<Model.ApplyDetailSPWorkChange> lSpWorkChange = new Model.ApplyDetailSPWorkChange().GetModelList(new 
            List<string> { "and ApplyMainID='" + ApplyMainID + "'" }, new List<string> { "*" });
            List<Model.ApplyDetailDepChange> lDepChange = new Model.ApplyDetailDepChange().GetModelList(new List<string> {     
            "and ApplyMainID='" + ApplyMainID + "'" }, new List<string> { "*" });
            List<Model.DepartmentInfo> dep = new Model.DepartmentInfo().GetModelList(new List<string> { " and  DelFlag=0 and ID =
            (select HigherDepID from DepartmentInfo where ID =" + DepID + ")" }, new List<string> { "*" });
            //室长上级并不存在部门了 所以此时默认用户为000000
            if (dep.Count == 0)
            {
                strLeaderUserNo = "000000";
            }
            //如果入退社/除外变更没有数据且部门变更都在同科下变动直接科长备案
            else if (depKZ[0].DepartmentType == (int)DepartmentType.Section && lInOut.Count == 0 
                      && lSpWorkChange.Count == 0 &&  lDepChange.Count > 0)
            {
                string strTk = string.Empty;
                lDepChange.ForEach(d =>
                {
                    string BeforeDepName = GetFullDeptNameA(d.BeforeDepartmentID.ToString());
                    string AfterDepName = GetFullDeptNameA(d.AfterDepartmentID.ToString());
                    if (BeforeDepName.Contains("生产") == false || AfterDepName.Contains("生产") == false)
                        strTk = (string.IsNullOrEmpty(strTk)) ? ((int)TkChange.No).ToString() : strTk + "," + ((int)TkChange.No).ToString();
                    else
                    {
                        if (BeforeDepName.Split('-')[2].ToString() == AfterDepName.Split('-')[2].ToString())
                            strTk = (string.IsNullOrEmpty(strTk)) ? ((int)TkChange.Yes).ToString() : 
                                        strTk + "," + ((int)TkChange.Yes).ToString();
                        else
                            strTk = (string.IsNullOrEmpty(strTk)) ? ((int)TkChange.No).ToString() : 
                                       strTk + "," + ((int)TkChange.No).ToString();
                    }
                });
                if (strTk.Contains(((int)TkChange.No).ToString()) == false)
                    strLeaderUserNo = "000000";
                else
                {
                    List<Model.EmployeeInfo> Leader = new Model.EmployeeInfo().GetModelList(new List<string> { " and LeadFlag=1 and 
                    DelFlag=0 and DepartmentID=" + dep[0].ID }, new List<string> { "*" });
                    if (Leader.Count == 0)
                        return GetLeaderUserNo(dep[0].ID.ToString(), ApplyMainID);
                    else
                        strLeaderUserNo = Leader[0].UserNo.ToString();
                }
            }
            else
            {
                List<Model.EmployeeInfo> Leader = new Model.EmployeeInfo().GetModelList(new List<string> { " and LeadFlag=1 and 
                DelFlag=0 and DepartmentID=" + dep[0].ID }, new List<string> { "*" });
                if (Leader.Count == 0)
                    return GetLeaderUserNo(dep[0].ID.ToString(), ApplyMainID);
                else
                    strLeaderUserNo = Leader[0].UserNo.ToString();
            }
            return strLeaderUserNo;
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值