Example #1
0
        public TreeNode CreateChildNode(hr_Department dept)
        {
            SysContext db = new SysContext();
            TreeNode   tn = new TreeNode();

            tn.id   = dept.DeptID;
            tn.text = dept.Name;
            var childs = db.hr_Depts.Where(x => x.IsActive == true).Where(x => x.ParentID == dept.DeptID);//加载可用的区域

            if (childs.Count() > 0)
            {
                tn.state = "closed";
                foreach (var childNode in childs)
                {
                    tn.children.Add(CreateChildNode(childNode));
                }
            }
            else
            {
                tn.state = "open";
                // 叶节点无子项
                tn.children = null;
            }
            return(tn);
        }
Example #2
0
        public Panasia.Gemini.FL.Data.Models.hr_Department GetDepartmentRootByDepartmentID(string DeptID)
        {
            hr_Department rootDepartment = new hr_Department();

            GetDepartmentRootByDepartmentID(new SysContext(), DeptID, ref rootDepartment);
            return(rootDepartment);
        }
Example #3
0
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            hr_Department hr_Department = await db.hr_Department.FindAsync(id);

            db.hr_Department.Remove(hr_Department);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
Example #4
0
 private void GetListWithAllParent(string DeptID, List <hr_Department> all_depts, List <hr_Department> ListWithAllParent)
 {
     if (DeptID != null)
     {
         hr_Department dept = all_depts.Where(d => d.IsActive && d.DeptID == DeptID).ToList()[0];
         ListWithAllParent.Add(dept);
         GetListWithAllParent(dept.ParentID, all_depts, ListWithAllParent);
     }
 }
Example #5
0
        public async Task <ActionResult> Edit([Bind(Include = "DepartmentID,DepartmentNameEn,DepartmentNameAr,Uploaded,DepartmentDate")] hr_Department hr_Department)
        {
            if (ModelState.IsValid)
            {
                db.Entry(hr_Department).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(hr_Department));
        }
Example #6
0
        public ActionResult Create(hr_Department Item)
        {
            int status = 0;

            if (ModelState.IsValid)
            {
                if (Item.DepartmentID > 0)
                {
                    var v = db.hr_Department.Where(I => I.DepartmentID == Item.DepartmentID).FirstOrDefault();
                    if (v != null)
                    {
                        v.DepartmentDate   = DateTime.Now;
                        v.DepartmentNameAr = Item.DepartmentNameAr;
                        db.SaveChanges();
                        status = 1; // 1 for update
                    }
                    status = 1;     // 1 for update
                }
                //################### Edit Item //###################

                // Start Save New Item
                else
                {
                    Item.DepartmentDate = DateTime.Now;
                    db.hr_Department.Add(Item);
                    db.SaveChanges();
                    status = 2;  // 2 fro
                }
                //End Save New Item

                return(new JsonResult {
                    Data = new { status = status }
                });
            }
            // End Validation cheack


            // Start Send validation error
            else
            {
                var errorList = ModelState.Values.SelectMany(m => m.Errors)
                                .Select(e => e.ErrorMessage)
                                .ToList();

                return(new JsonResult {
                    Data = new { status = errorList }
                });
            }

            // End  Send validation error
        }
Example #7
0
        // GET: Departments/Details/5
        public async Task <ActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            hr_Department hr_Department = await db.hr_Department.FindAsync(id);

            if (hr_Department == null)
            {
                return(HttpNotFound());
            }
            return(View(hr_Department));
        }
Example #8
0
        private void GetDepartmentRootByDepartmentID(SysContext db, string DeptID, ref hr_Department rootDepartment)
        {
            hr_Department dept = db.hr_Department.Where(d => d.DeptID == DeptID).SingleOrDefault();

            if (dept != null)
            {
                if (dept.ParentID != "")
                {
                    GetDepartmentRootByDepartmentID(db, dept.ParentID, ref rootDepartment);
                }
                else
                {
                    rootDepartment = dept;
                }
            }
        }
Example #9
0
        private string GetNameForRule(fl_Approver form, Panasia.Core.Sys.hr_Employee emp, hr_Job job, hr_Department dept)
        {
            string name = "";

            if (form.IsFuzzy)
            {
                name = "本部门-" + GetFuzzyName(form.FuzzyType.Value);
            }
            else
            {
                name = ((dept == null) ? "" : dept.Name) + "-" + (emp == null ? ((job == null) ? "" : job.Name) : emp.Name);
            }
            return(name);
        }
        public ActionResult ImportDept(FormCollection form)
        {
            HttpRequest        request     = System.Web.HttpContext.Current.Request;
            HttpFileCollection FileCollect = request.Files;
            DataSet            ds          = new DataSet();

            StringBuilder skipIndex  = new StringBuilder();
            StringBuilder rightIndex = new StringBuilder();
            StringBuilder errorIndex = new StringBuilder();
            ResultData    res        = new ResultData();

            if (FileCollect.Count > 0)
            {
                foreach (string str in FileCollect)
                {
                    ds = ReadExcel(str, ds, FileCollect);
                    #region 判断excel表中的数据是否存在
                    string[] cols = new string[] { "事业部", "公司", "部门", "子部门", "负责人", "排序", "备注" };
                    for (int j = 0; j < cols.Length; j++)
                    {
                        if (!ds.Tables[0].Columns.Contains(cols[j]))
                        {
                            res.ErrorMessage = cols[j] + "列不存在!";
                            res.HasError     = false;
                            return(Json(res, "text/html;charset=utf-8", JsonRequestBehavior.AllowGet));
                        }
                    }
                    #endregion
                    int count = ds.Tables[0].Rows.Count;
                    using (var db = new SysContext())
                    {
                        for (int i = 0; i < count; i++)
                        {
                            #region 预处理
                            string buname, companyname, managerName, deptName, parentName, managerID, parentID, deptid, companyid;
                            int    sort = i + 1;
                            buname      = ds.Tables[0].Rows[i]["事业部"].ToString().Trim();
                            companyname = ds.Tables[0].Rows[i]["公司"].ToString().Trim();
                            managerName = ds.Tables[0].Rows[i]["负责人"].ToString().Trim();
                            #region 获取负责人id
                            using (var dbe = new Panasia.Core.Sys.SysContext())
                            {
                                var manager = (from ma in dbe.hr_Employees where ma.Name.Equals(managerName) && ma.IsActive select ma.EmployeeID.ToString()).ToList();
                                managerID = manager.Count > 0 ? manager[0] : "";
                            }
                            #endregion

                            var company = (from com in db.hr_Companies where com.Name.Equals(companyname) && com.IsActive select com.CompanyID.ToString()).ToList();
                            var buid    = (from bu in db.hr_BUs where bu.Name.Equals(buname) && bu.IsActive select bu.BUID.ToString()).ToList();
                            #endregion
                            if (company.Count == 0)
                            {
                                res.ErrorMessage = companyname + "不存在!";
                                res.HasError     = false;
                                return(Json(res, "text/html;charset=utf-8", JsonRequestBehavior.AllowGet));
                            }
                            else
                            {
                                #region 判断部门存在则跳过
                                companyid = company[0];
                                var departments = new List <string>();
                                if (ds.Tables[0].Rows[i]["子部门"].ToString().Trim() == "")
                                {
                                    deptName    = ds.Tables[0].Rows[i]["部门"].ToString().Trim();
                                    departments = (from dept in db.hr_Depts where dept.Name.Equals(deptName) && dept.CompanyID.Equals(companyid) && dept.IsActive select dept.DeptID.ToString()).ToList();
                                }
                                else
                                {
                                    deptName   = ds.Tables[0].Rows[i]["子部门"].ToString().Trim();
                                    parentName = ds.Tables[0].Rows[i]["部门"].ToString().Trim();
                                    var parentid = (from dept1 in db.hr_Depts where dept1.Name.Equals(parentName) && dept1.IsActive select dept1.ParentID.ToString()).ToList().FirstOrDefault();
                                    departments = (from dept in db.hr_Depts where dept.Name.Equals(deptName) && dept.ParentID.Equals(parentid) && dept.IsActive select dept.DeptID).ToList();
                                }


                                if (departments.Count > 0)
                                {
                                    skipIndex.Append((i + 1).ToString() + ",");
                                }
                                #endregion
                                else
                                {
                                    #region 获取部门ID
                                    try
                                    {
                                        db.Database.Connection.Open();
                                        var cmd = db.Database.Connection.CreateCommand();
                                        cmd.CommandText = "declare @demo varchar(max) exec dbo.sp_CreateSerialCode 'Depart','D',6,@demo output select @demo";
                                        deptid          = cmd.ExecuteScalar().ToString();
                                        db.Database.Connection.Close();
                                    }
                                    catch (Exception ex)
                                    {
                                        res.ErrorMessage = "数据库操作出错";
                                        res.HasError     = false;
                                        return(Json(res, "text/html;charset=utf-8", JsonRequestBehavior.AllowGet));
                                    }

                                    #endregion
                                    if (ds.Tables[0].Rows[i]["子部门"].ToString().Trim() == "")
                                    {
                                        #region 新建没有父节点的部门
                                        try
                                        {
                                            hr_Department department = new hr_Department
                                            {
                                                DeptID      = deptid,
                                                Name        = ds.Tables[0].Rows[i]["部门"].ToString().Trim(),
                                                ManagerID   = managerID,
                                                ParentID    = "",
                                                CompanyID   = company[0],
                                                BUID        = buid.Count > 0?buid[0]:"",
                                                Description = ds.Tables[0].Rows[i]["备注"].ToString().Trim(),
                                                IsActive    = true,
                                                SortID      = sort
                                            };
                                            department.ResetCreated();
                                            db.hr_Depts.Add(department);
                                            db.SaveChanges();
                                            rightIndex.Append((i + 1).ToString() + ',');
                                        }
                                        catch (Exception ex)
                                        {
                                            errorIndex.Append((i + 1).ToString() + ',');
                                            res.ErrorMessage = skipIndex + ":" + rightIndex + ":" + errorIndex;
                                            res.HasError     = true;
                                            return(Json(res, "text/html;charset=utf-8", JsonRequestBehavior.AllowGet));
                                        }
                                        #endregion
                                    }
                                    else
                                    {
                                        #region 新建有父节点的部门
                                        try
                                        {
                                            deptName = ds.Tables[0].Rows[i]["部门"].ToString().Trim();
                                            var           parentid   = (from dept in db.hr_Depts where dept.Name.Equals(deptName) && dept.IsActive && dept.CompanyID.Equals(companyid) select dept.DeptID.ToString()).ToList();
                                            hr_Department department = new hr_Department
                                            {
                                                DeptID      = deptid,
                                                Name        = ds.Tables[0].Rows[i]["子部门"].ToString().Trim(),
                                                ManagerID   = managerID,
                                                ParentID    = parentid[0],
                                                CompanyID   = companyid,
                                                BUID        = buid.Count > 0?buid[0]:"",
                                                Description = ds.Tables[0].Rows[i]["备注"].ToString().Trim(),
                                                IsActive    = true,
                                                SortID      = sort
                                            };
                                            department.ResetCreated();
                                            db.hr_Depts.Add(department);
                                            db.SaveChanges();
                                            rightIndex.Append((i + 1).ToString() + ',');
                                        }
                                        catch (Exception ex)
                                        {
                                            errorIndex.Append((i + 1).ToString() + ',');
                                            res.ErrorMessage = skipIndex + ":" + rightIndex + ":" + errorIndex;
                                            res.HasError     = true;
                                            return(Json(res, "text/html;charset=utf-8", JsonRequestBehavior.AllowGet));
                                        }
                                        #endregion
                                    }
                                }
                            }
                        }
                    }
                    res.ErrorMessage = skipIndex + ":" + rightIndex + ":" + errorIndex;
                    res.HasError     = true;
                    return(Json(res, "text/html;charset=utf-8", JsonRequestBehavior.AllowGet));
                }
            }
            return(Json(res, "text/html;charset=utf-8", JsonRequestBehavior.AllowGet));
        }
Example #11
0
        public ActionResult InitOrgTree()
        {
            SysContext db = new SysContext();

            defaultDataType = Request.QueryString["defaultDataType"].ToLower();
            defaultData     = Request.QueryString["defaultData"];
            if (!string.IsNullOrEmpty(defaultData) && !string.IsNullOrEmpty(defaultDataType))
            {
                if (defaultData.ToLower() == "[user]")
                {
                    if (User == null)
                    {
                        defaultData = "";
                    }
                    else
                    {
                        Panasia.Core.Sys.SystemParameterFunctions sysParameter = new Core.Sys.SystemParameterFunctions();
                        string userID = sysParameter.GetCurrentUserID("").ToString();
                        //登录的时候没有把公司部门等ID信息放到登录者信息中去,这里暂时用数据库查询的方式获取,以后可以改
                        string departmentID = dbsys.hr_Employees.Where(e => e.UserID == userID).Select(e => e.DeptID).ToList()[0];
                        if (defaultDataType == "c")
                        {
                            defaultData = db.hr_Depts.Find(departmentID).CompanyID;
                        }
                        else if (defaultDataType == "d")
                        {
                            defaultData = departmentID;
                        }
                    }
                }
            }
            List <hr_Company> companies = null;

            //这里的逻辑是这样的,不管defaultDataType是c还是d,company肯定都只有特定的一个了
            if (defaultDataType == "c" || defaultDataType == "d")
            {
                if (defaultDataType == "c")
                {
                    companies = db.hr_Companies.Where(c => c.IsActive && c.CompanyID == defaultData).ToList();
                }
                else if (defaultDataType == "d")
                {
                    hr_Department dept = db.hr_Depts.Find(defaultData);
                    companies = db.hr_Companies.Where(c => c.IsActive && c.CompanyID == dept.CompanyID).ToList();
                }
            }
            else
            {
                companies = db.hr_Companies.Where(c => c.IsActive).OrderBy(c => c.SortID).ToList();
            }
            List <hr_Department> all_depts = null;
            List <hr_Job>        all_jobs  = null;
            List <hr_Employee>   all_emps  = null;

            //type:1、全部呈现,包括公司,部门,职位和员工 2、公司、部门、职位 3、公司、部门 4、公司
            int configType = 1;

            int.TryParse(Request.QueryString["configType"], out configType);
            if (configType < 4)
            {
                if (defaultDataType == "d")
                {
                    all_depts = new List <hr_Department>();
                    GetListWithAllParent(defaultData, db.hr_Depts.ToList(), all_depts);
                }
                else
                {
                    all_depts = db.hr_Depts.Where(d => d.IsActive).OrderBy(c => c.SortID).ToList();
                }
            }
            if (configType < 3)
            {
                //因为部门职位需要通过员工来查询,所以<3的就全部信息都需要了
                all_jobs = db.hr_Jobs.Where(j => j.IsActive).OrderBy(j => j.SortID).ToList();
                all_emps = dbsys.hr_Employees.Where(e => e.IsActive).ToList();
            }

            state = Request.QueryString["defaultState"];
            if (state == "1")
            {
                state = "open";
            }
            else
            {
                state = "closed";
            }

            List <TreeNodeExtend> tree = new List <TreeNodeExtend>();

            if (companies.Count > 0)
            {
                foreach (hr_Company company in companies)
                {
                    TreeNodeExtend node = new TreeNodeExtend();
                    node.id      = company.CompanyID;
                    node.text    = company.Name;
                    node.type    = "c";
                    node.iconCls = "icon-company";

                    if (configType < 4)
                    {
                        List <TreeNodeExtend> children = DepartmentChildren(company.CompanyID, "", all_depts, all_jobs, all_emps, configType);
                        if (children.Count > 0)
                        {
                            node.state = state;
                            node.children.AddRange(children);
                        }
                    }
                    tree.Add(node);
                }
            }
            JsonResult json = Json(tree, JsonRequestBehavior.AllowGet);

            return(json);
        }