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); }
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); }
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")); }
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); } }
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)); }
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 }
// 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)); }
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; } } }
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)); }
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); }