示例#1
0
        internal List <VirtualUser> GetVirtualUser(List <string> userIDs)
        {
            List <VirtualUser> listUser = new List <VirtualUser>();

            if (userIDs.Count == 0)
            {
                return(listUser);
            }
            try
            {
                PersonnelWS.PersonnelServiceClient personService = new PersonnelWS.PersonnelServiceClient();

                List <PersonnelWS.T_HR_EMPLOYEE> employeeList = personService.GetEmployeeByIDs(userIDs.ToArray()).ToList();

                employeeList.ForEach(employeeHR =>
                {
                    VirtualUser vu = new VirtualUser();
                    vu.ID          = employeeHR.EMPLOYEEID;
                    vu.Name        = employeeHR.EMPLOYEECNAME + "(" + employeeHR.EMPLOYEECODE + ")";
                    listUser.Add(vu);
                });
            }
            catch (Exception ex)
            {
                SystemBLL.Debug(ex.ToString());
            }
            return(listUser);
        }
示例#2
0
文件: Common.cs 项目: jjg0519/OA
        /// <summary>
        /// 对单个节点的操作
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="propertyInfo"></param>
        /// <param name="listDone"></param>
        /// <returns></returns>
        private static XElement ToXml(this object obj, string xName, List <object> listDone)
        {
            try
            {
                if (obj == null)
                {
                    if (xName != null)
                    {
                        return(new XElement(xName));
                    }
                    return(null);
                }
                Type curType = obj.GetType();
                if (xName == null)
                {
                    xName = curType.Name;
                }
                XElement result = null;


                // 值类型
                if (curType.IsValueType || curType.IsEnum || curType == typeof(string))
                {
                    result = new XElement(xName);
                    result.Add(obj);
                }
                else
                {
                    IEnumerable ie = obj as IEnumerable;
                    // 集合类型
                    if (ie != null)
                    {
                        result = ie.ListToXml(xName, listDone);
                    }
                    else // 单个对象类型
                    {
                        result = obj.ObjectToXml(xName, listDone);
                    }
                }
                return(result);
            }
            catch (Exception ex)
            {
                SystemBLL.Debug(ex.ToString());
                return(null);
            }
        }
示例#3
0
        /// <summary>
        /// 保存实体
        /// </summary>
        /// <param name="fbEntityList"></param>
        /// <returns></returns>
        public SaveResult Save(SaveEntity saveEntity)
        {
            SaveResult result = new SaveResult();

            try
            {
                result.FBEntity   = base.SaveEntityBLLSave(saveEntity);
                result.Successful = true;
            }
            catch (FBBLLException ex)
            {
                result.Successful = false;
                result.Exception  = ex.Message;
                SystemBLL.Debug(ex.ToString());
            }
            return(result);
        }
示例#4
0
        public List <VirtualCompany> InnerGetCompany(QueryExpression qe)
        {
            try
            {
                string action = ((int)Utility.Permissions.Browse).ToString();

                List <OrganizationWS.T_HR_COMPANY> comList   = organizationService.GetCompanyByEntityPerm(qe.VisitUserID, action, qe.VisitModuleCode).ToList();
                List <OrganizationWS.V_DEPARTMENT> deptList  = organizationService.GetDepartmentView(qe.VisitUserID, action, qe.VisitModuleCode).ToList();
                List <OrganizationWS.V_POST>       vpostList = organizationService.GetPostView(qe.VisitUserID, action, qe.VisitModuleCode).ToList();
                //有效的部门和岗位
                deptList  = deptList.Where(s => s.EDITSTATE == "1").ToList();
                vpostList = vpostList.Where(s => s.EDITSTATE == "1").ToList();
                List <OrganizationWS.T_HR_POST> postList = new List <OrganizationWS.T_HR_POST>();
                try
                {
                    foreach (var ent in vpostList)
                    {
                        OrganizationWS.T_HR_POST pt = new OrganizationWS.T_HR_POST();
                        pt.POSTID       = ent.POSTID;
                        pt.FATHERPOSTID = ent.FATHERPOSTID;
                        pt.CHECKSTATE   = ent.CHECKSTATE;
                        pt.EDITSTATE    = ent.EDITSTATE;

                        pt.T_HR_POSTDICTIONARY = new OrganizationWS.T_HR_POSTDICTIONARY();
                        pt.T_HR_POSTDICTIONARY.POSTDICTIONARYID = Guid.NewGuid().ToString();
                        pt.T_HR_POSTDICTIONARY.POSTNAME         = ent.POSTNAME;

                        pt.T_HR_DEPARTMENT = new OrganizationWS.T_HR_DEPARTMENT();
                        try
                        {
                            string strDepartmentid = deptList.Where(s => s.DEPARTMENTID == ent.DEPARTMENTID).FirstOrDefault().DEPARTMENTID;
                            pt.T_HR_DEPARTMENT.DEPARTMENTID = strDepartmentid;
                            postList.Add(pt);
                        }
                        catch (Exception ex)
                        {
                            SystemBLL.Debug("当前员工:" + qe.VisitUserID + "查询岗位所属部门错误,岗位名称 " + ent.POSTNAME + "岗位id" + ent.POSTID + "没找到所属部门,可能是权限不足导致");
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }


                List <VirtualCompany> listCompany = new List <VirtualCompany>();
                try
                {
                    comList.ForEach(comHR =>
                    {
                        List <VirtualDepartment> listDepartment = new List <VirtualDepartment>();


                        VirtualCompany vc       = new VirtualCompany();
                        vc.ID                   = comHR.COMPANYID;
                        vc.Name                 = comHR.CNAME;
                        vc.DepartmentCollection = listDepartment;
                        listCompany.Add(vc);

                        List <OrganizationWS.V_DEPARTMENT> deptListPart = deptList.FindAll(item =>
                        {
                            if (item.COMPANYID == null)
                            {
                                return(false);
                            }
                            return(item.COMPANYID == comHR.COMPANYID);
                        });
                        deptListPart.ForEach(deptHR =>
                        {
                            try
                            {
                                List <VirtualPost> listPost = new List <VirtualPost>();

                                VirtualDepartment vd = new VirtualDepartment();
                                vd.ID             = deptHR.DEPARTMENTID;
                                vd.Name           = deptHR.DEPARTMENTNAME;
                                vd.VirtualCompany = vc;
                                vd.PostCollection = listPost;
                                listDepartment.Add(vd);

                                List <OrganizationWS.T_HR_POST> postListPart = postList.FindAll(item =>
                                {
                                    if (item.T_HR_DEPARTMENT.DEPARTMENTID == null)
                                    {
                                        return(false);
                                    }
                                    return(item.T_HR_DEPARTMENT.DEPARTMENTID == deptHR.DEPARTMENTID);
                                });
                                postListPart.ForEach(postHR =>
                                {
                                    try
                                    {
                                        VirtualPost vp       = new VirtualPost();
                                        vp.ID                = postHR.POSTID;
                                        vp.Name              = postHR.T_HR_POSTDICTIONARY.POSTNAME;
                                        vp.VirtualCompany    = vc;
                                        vp.VirtualDepartment = vd;
                                        listPost.Add(vp);
                                    }
                                    catch (Exception ex)
                                    {
                                        throw ex;
                                    }
                                });
                            }
                            catch (Exception ex)
                            {
                                throw ex;
                            }
                        });
                    });
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                return(listCompany);
            }
            catch (Exception ex)
            {
                SystemBLL.Debug(ex.ToString());
                throw new Exception("调用HR服务异常", ex);
            }
        }
示例#5
0
        //处理岗位信息一栏
        public List <T_FB_PERSONMONEYASSIGNDETAIL> UpdatePostInfo(List <T_FB_PERSONMONEYASSIGNDETAIL> listperson)
        {
            PersonnelWS.PersonnelServiceClient pe            = new PersonnelWS.PersonnelServiceClient();
            PersonnelWS.V_EMPLOYEEPOSTFORFB[]  vlistpostinfo = new PersonnelWS.V_EMPLOYEEPOSTFORFB[listperson.Count];
            int i = 0;

            listperson.ForEach(item =>
            {
                PersonnelWS.V_EMPLOYEEPOSTFORFB vpostinfo = new PersonnelWS.V_EMPLOYEEPOSTFORFB();
                vpostinfo.PERSONBUDGETAPPLYDETAILID       = item.PERSONBUDGETAPPLYDETAILID;
                vpostinfo.OWNERID     = item.OWNERID;
                vpostinfo.OWNERPOSTID = item.OWNERPOSTID;
                vlistpostinfo[i]      = vpostinfo;
                i++;
            });
            try
            {
                vlistpostinfo = pe.GetEmployeeListForFB(vlistpostinfo) as PersonnelWS.V_EMPLOYEEPOSTFORFB[];
            }
            catch (Exception ex)
            {
                SystemBLL.Debug("调用HR服务异常 GetEmployeeListForFB " + ex.ToString());
            }

            listperson.ForEach(item =>
            {
                var person = vlistpostinfo.Where(p => p.PERSONBUDGETAPPLYDETAILID == item.PERSONBUDGETAPPLYDETAILID).FirstOrDefault();
                if (person != null)
                {
                    item.SUGGESTBUDGETMONEY = person.SUM;
                    switch (person.EMPLOYEESTATE)
                    {
                    case "0":    //试用期
                        item.POSTINFO = "试用期,请注意";
                        break;

                    case "1":    //在职
                        item.POSTINFO = string.Empty;
                        break;

                    case "2":    //已离职
                        item.POSTINFO = "已离职,请删除";
                        break;

                    case "3":    //离职中
                        item.POSTINFO = "离职中,请注意";
                        break;

                    case "4":    //未入职
                        item.POSTINFO = "未入职,请删除";
                        break;

                    case "10":    //异动中
                        item.POSTINFO = "异动中,请异动后再处理";
                        break;

                    case "11":    //异动过
                        item.POSTINFO = "异动过,已转换成新岗位";

                        item.OWNERPOSTID         = person.NEWPOSTID;
                        item.OWNERPOSTNAME       = person.NEWPOSTNAME;
                        item.OWNERDEPARTMENTID   = person.NEWDEPARTMENTID;
                        item.OWNERDEPARTMENTNAME = person.NEWDEPARTMENTNAME;
                        item.OWNERCOMPANYID      = person.NEWCOMPANYID;
                        item.OWNERCOMPANYNAME    = person.NEWCOMPANYNAME;
                        break;

                    case "12":    //岗位异常
                        item.POSTINFO = "岗位异常,请删除后再选择";
                        break;

                    default:
                        item.POSTINFO = string.Empty;
                        break;
                    }

                    switch (person.ISAGENCY)
                    {
                    case "0":    //主岗位
                        // item.POSTINFO += string.Empty;
                        break;

                    case "1":    //赚职
                        if (item.POSTINFO != string.Empty && person.EMPLOYEESTATE != "1")
                        {
                            item.POSTINFO = item.POSTINFO.Insert(0, "兼职,");
                        }
                        else
                        {
                            item.POSTINFO = "兼职";
                        }
                        break;

                    default:
                        // item.POSTINFO += string.Empty;
                        break;
                    }
                }
            });
            return(listperson);
        }
示例#6
0
        /// <summary>
        /// 根据实体名,实体的主键ID及审核状态,更新指定实体的记录
        /// </summary>
        /// <param name="strModelCode">实体名</param>
        /// <param name="orderID">实体的主键ID</param>
        /// <param name="strCheckStates">审核状态</param>
        public int UpdateCheckState(string strModelCode, string orderID, string strCheckStates, ref string strMsg)
        {
            int i = -1;

            try
            {
                SystemBLL.Debug("UpdateCheckState方法已被调用,参数:strModelCode: " + strModelCode + ", orderID: " + orderID + ", strCheckStates: " + strCheckStates);

                // begin 用于出差报销、事项审批的手机提交
                //if (strModelCode == "Travel")
                //{
                //    var tempResult = UpdateExtensionOrder(strModelCode, orderID, strCheckStates, ref strMsg);
                //    return (tempResult == null) ? -1 : 1;

                //}
                List <EntityInfo> EntityInfoList = FBCommonBLL.FBCommonEntityList;
                if (EntityInfoList == null)
                {
                    strMsg = "预算服务初始化异常,请重试。";
                    return(-1);
                }

                if (EntityInfoList.Count() == 0)
                {
                    strMsg = "预算服务初始化异常,请重试。";
                    return(-1);
                }

                string      strTypeName = "";
                string      strKeyName  = "";
                CheckStates cs          = CheckStates.UnSubmit;
                switch (strCheckStates)
                {
                case "1":
                    cs = CheckStates.Approving;
                    break;

                case "2":
                    cs = CheckStates.Approved;
                    break;

                case "3":
                    cs = CheckStates.UnApproved;
                    break;

                default:
                    break;
                }

                var entityInfo = EntityInfoList.Where(t => t.Type == strModelCode).FirstOrDefault();
                strTypeName = entityInfo.Type;
                strKeyName  = entityInfo.KeyName;
                /////add 2012.12.12
                /////传入报销月份为时间去和当前时间判断,如果不在同一年
                /////说明该报销单是跨年的,则不能进行审核操作,即当年的报销单只能在当年进行报销
                //if (dNewCheckStates == FBAEnums.CheckStates.Approved || dNewCheckStates == FBAEnums.CheckStates.Approving)
                //{
                //    if (IsOverYear(entity.BUDGETARYMONTH))
                //    {
                //        strMsg = "报销单跨年后只能终审不通过(财务规定)";
                //        Tracer.Debug(strMsg);
                //        return;
                //    }
                //}
                using (FBCommonBLL bllCommon = new FBCommonBLL())
                {
                    bllCommon.BeginTransaction();
                    SystemBLL.Debug("BeginTransaction " + strModelCode + " 的单据[" + orderID + "]");
                    try
                    {
                        QueryExpression qe = QueryExpression.Equal(strKeyName, orderID);
                        qe.QueryType = strTypeName;

                        var data  = qe.Query(bllCommon);
                        var order = data.FirstOrDefault();
                        if (order == null)
                        {
                            strMsg = "没有可操作的数据";
                            return(-1);
                        }

                        bllCommon.AuditFBEntityWithoutFlow(order, cs, ref strMsg);
                        i = 1;
                        if (string.IsNullOrEmpty(strMsg))
                        {
                            bllCommon.CommitTransaction();
                            SystemBLL.Debug("CommitTransaction " + strModelCode + " 的单据[" + orderID + "]");
                        }
                        else
                        {
                            bllCommon.RollbackTransaction();
                            SystemBLL.Debug("RollbackTransaction 审核" + strModelCode + "的单据[" + orderID + "]失败,提示消息为:" + strMsg);
                        }
                    }
                    catch (Exception ex)
                    {
                        bllCommon.RollbackTransaction();
                        SystemBLL.Debug("RollbackTransaction 审核" + strModelCode + "的单据[" + orderID + "]失败,提示消息为:" + strMsg);
                        throw ex;
                    }
                }
            }
            catch (Exception ex)
            {
                strMsg = "单据审核异常,请联系管理员";
                throw ex;
            }

            // 把消息通过异常机制返回
            if (!string.IsNullOrWhiteSpace(strMsg))
            {
                SystemBLL.Debug("审核" + strModelCode + "的单据[" + orderID + "]失败,提示消息为:" + strMsg);
                throw new Exception(strMsg);
            }

            return(i);
        }