/// <summary> /// 网格数据处理 /// </summary> /// <param name="data">数据</param> /// <param name="otherParams">其他参数</param> /// <param name="currUser">当前用户</param> public bool PageGridDataHandle(List <OrgM_Emp> data, object[] otherParams = null, UserInfo currUser = null) { if (data != null && data.Count > 0) { foreach (OrgM_Emp t in data) { OrgM_EmpDeptDuty empPosition = OrgMOperate.GetEmpMainPosition(t.Id); if (empPosition != null) { if (empPosition.OrgM_DeptId.HasValue && empPosition.OrgM_DeptId.Value != Guid.Empty && empPosition.OrgM_DutyId.HasValue && empPosition.OrgM_DutyId.Value != Guid.Empty) { OrgM_Dept dept = OrgMOperate.GetDeptById(empPosition.OrgM_DeptId.Value); if (dept != null) { t.DeptId = dept.Id; t.DeptName = string.IsNullOrEmpty(dept.Alias) ? dept.Name : dept.Alias; } OrgM_Duty duty = OrgMOperate.GetDuty(empPosition.OrgM_DutyId.Value); if (duty != null) { t.DutyId = duty.Id; t.DutyName = duty.Name; } } } } } return(false); }
/// <summary> /// 表单数据处理 /// </summary> /// <param name="t">对象</param> /// <param name="formType">表单类型</param> /// <param name="currUser">当前用户</param> public void FormDataHandle(OrgM_Emp t, FormTypeEnum formType, UserInfo currUser = null) { if (t != null) { OrgM_EmpDeptDuty empPosition = OrgMOperate.GetEmpMainPosition(t.Id); if (empPosition != null) { if (empPosition.OrgM_DeptId.HasValue && empPosition.OrgM_DeptId.Value != Guid.Empty && empPosition.OrgM_DutyId.HasValue && empPosition.OrgM_DutyId.Value != Guid.Empty) { OrgM_Dept dept = OrgMOperate.GetDeptById(empPosition.OrgM_DeptId.Value); if (dept != null) { t.DeptId = dept.Id; t.DeptName = string.IsNullOrEmpty(dept.Alias) ? dept.Name : dept.Alias; } OrgM_Duty duty = OrgMOperate.GetDuty(empPosition.OrgM_DutyId.Value); if (duty != null) { t.DutyId = duty.Id; t.DutyName = duty.Name; } } } } }
/// <summary> /// 获取员工的层级部门信息 /// </summary> /// <returns></returns> public JsonResult GetEmpLevelDepthDept() { if (_Request == null) { _Request = Request; } SetRequest(_Request); string levelDepthStr = _Request.QueryEx("levelDepth").ObjToStr(); int levelDepth = levelDepthStr.ObjToInt(); //层级 string empIdStr = _Request.QueryEx("empId").ObjToStr(); Guid empId = empIdStr.ObjToGuid(); //员工ID string companyIdStr = _Request.QueryEx("companyId").ObjToStr(); Guid? companyId = companyIdStr.ObjToGuidNull(); //所属公司,集团模式下用到 string deptIdStr = _Request.QueryEx("deptId").ObjToStr(); Guid? deptId = deptIdStr.ObjToGuidNull(); //兼职部门,以兼职部门找 if (empId == Guid.Empty || levelDepth < 0) { return(Json(null)); } //层级部门 OrgM_Dept depthDept = OrgMOperate.GetEmpLevelDepthDept(levelDepth, empId, companyId, deptId); //当前部门 OrgM_Dept currDept = deptId.HasValue && deptId.Value != Guid.Empty ? OrgMOperate.GetDeptById(deptId.Value) : OrgMOperate.GetEmpMainDept(empId, companyId); return(Json(new { CurrDept = currDept, DepthDept = depthDept })); }
/// <summary> /// 操作完成后 /// </summary> /// <param name="operateType"></param> /// <param name="t"></param> /// <param name="result"></param> /// <param name="currUser"></param> /// <param name="otherParams"></param> public void OperateCompeletedHandle(ModelRecordOperateType operateType, OrgM_EmpDeptDuty t, bool result, UserInfo currUser, object[] otherParams = null) { if (result) { string errMsg = string.Empty; if (operateType == ModelRecordOperateType.Add || operateType == ModelRecordOperateType.Edit) { if (t.OrgM_EmpId.HasValue && t.OrgM_EmpId.Value != Guid.Empty && t.OrgM_DeptId.HasValue && t.OrgM_DeptId.Value != Guid.Empty) { OrgM_Dept dept = OrgMOperate.GetDeptById(t.OrgM_DeptId.Value); string username = OrgMOperate.GetUserNameByEmpId(t.OrgM_EmpId.Value); if (!string.IsNullOrEmpty(username) && dept != null) { Sys_User user = UserOperate.GetUser(username); Sys_Organization org = UserOperate.GetAllOrgs(x => x.Name == dept.Name && x.Flag == dept.Id.ToString()).FirstOrDefault(); if (user != null && org != null && user.Sys_OrganizationId != org.Id) { user.Sys_OrganizationId = org.Id; CommonOperate.OperateRecord <Sys_User>(user, ModelRecordOperateType.Edit, out errMsg, new List <string>() { "Sys_OrganizationId" }, false); } } } } } }
/// <summary> /// 添加部门 /// </summary> /// <returns></returns> public JsonResult AddDept() { if (_Request == null) { _Request = Request; } string deptname = _Request.QueryEx("deptname").ObjToStr(); if (string.IsNullOrWhiteSpace(deptname)) { return(Json(new ReturnResult() { Success = false, Message = "部门名称不能为空" })); } string errMsg = string.Empty; long num = CommonOperate.Count <OrgM_Dept>(out errMsg, false, x => x.Name == deptname); if (num > 0) { return(Json(new ReturnResult() { Success = false, Message = "该部门已存在,请不要重复添加" })); } UserInfo currUser = GetCurrentUser(_Request); Guid moduleId = SystemOperate.GetModuleIdByTableName("OrgM_Dept"); string code = SystemOperate.GetBillCode(moduleId); OrgM_Dept dept = new OrgM_Dept() { Code = code, Name = deptname, Alias = deptname, IsValid = true, EffectiveDate = DateTime.Now, CreateDate = DateTime.Now, CreateUserId = currUser.UserId, CreateUserName = currUser.EmpName, ModifyDate = DateTime.Now, ModifyUserId = currUser.UserId, ModifyUserName = currUser.EmpName }; Guid deptId = CommonOperate.OperateRecord <OrgM_Dept>(dept, ModelRecordOperateType.Add, out errMsg, null, false); if (deptId != Guid.Empty) { SystemOperate.UpdateBillCode(moduleId, code); return(Json(new { Success = true, Message = string.Empty, DeptId = deptId, DeptName = deptname })); } else { return(Json(new ReturnResult() { Success = false, Message = errMsg })); } }
/// <summary> /// 添加部门 /// </summary> /// <returns></returns> public ActionResult AddDept() { string deptname = Request["deptname"].ObjToStr(); if (string.IsNullOrWhiteSpace(deptname)) { return(Json(new ReturnResult() { Success = false, Message = "部门名称不能为空" })); } string errMsg = string.Empty; long num = CommonOperate.Count <OrgM_Dept>(out errMsg, false, x => x.Name == deptname); if (num > 0) { return(Json(new ReturnResult() { Success = false, Message = "该部门已存在,请不要重复添加" })); } UserInfo currUser = GetCurrentUser(Request); OrgM_Dept dept = new OrgM_Dept() { Name = deptname, Alias = deptname, IsValid = true, EffectiveDate = DateTime.Now, CreateDate = DateTime.Now, CreateUserId = currUser.UserId, CreateUserName = currUser.EmpName, ModifyDate = DateTime.Now, ModifyUserId = currUser.UserId, ModifyUserName = currUser.EmpName }; Guid deptId = CommonOperate.OperateRecord <OrgM_Dept>(dept, ModelRecordOperateType.Add, out errMsg, null, false); if (deptId != Guid.Empty) { return(Json(new { Success = true, Message = string.Empty, DeptId = deptId, DeptName = deptname })); } else { return(Json(new ReturnResult() { Success = false, Message = errMsg })); } }
/// <summary> /// 网格条件过滤 /// </summary> /// <param name="where">where</param> /// <param name="gridType">网格类型</param> /// <param name="condition">条件</param> /// <param name="initModule">原始模块,针对表单弹出框</param> /// <param name="initField">原始字段,针对表单弹出框</param> /// <param name="otherParams">其他参数</param> /// <param name="currUser">当前用户</param> /// <returns></returns> public Expression <Func <OrgM_Emp, bool> > GetGridFilterCondition(out string where, DataGridType gridType, Dictionary <string, string> condition = null, string initModule = null, string initField = null, Dictionary <string, string> otherParams = null, UserInfo currUser = null) { where = string.Empty; if (condition != null && condition.ContainsKey("OrgM_DeptId")) { OrgM_Dept root = OrgMOperate.GetDeptRoot(); Guid deptId = condition["OrgM_DeptId"].ObjToGuid(); if (deptId != root.Id) { List <Guid> childDeptIds = OrgMOperate.GetChildDepts(deptId).Select(x => x.Id).ToList(); childDeptIds.Add(deptId); string deptIdStr = string.Join("','", childDeptIds); where = string.Format("Id IN(SELECT OrgM_EmpId FROM dbo.OrgM_EmpDeptDuty WHERE OrgM_DeptId IN('{0}'))", deptIdStr); condition.Remove("OrgM_DeptId"); } } return(null); }
/// <summary> /// 获取员工的层级部门信息 /// </summary> /// <returns></returns> public ActionResult GetEmpLevelDepthDept() { if (_Request == null) { _Request = Request; } SetRequest(_Request); int levelDepth = _Request["levelDepth"].ObjToInt(); //层级 Guid empId = _Request["empId"].ObjToGuid(); //员工ID Guid?companyId = _Request["companyId"].ObjToGuidNull(); //所属公司,集团模式下用到 Guid?deptId = _Request["deptId"].ObjToGuidNull(); //兼职部门,以兼职部门找 if (empId == Guid.Empty || levelDepth < 0) { return(Json(null)); } //层级部门 OrgM_Dept depthDept = OrgMOperate.GetEmpLevelDepthDept(levelDepth, empId, companyId, deptId); //当前部门 OrgM_Dept currDept = deptId.HasValue && deptId.Value != Guid.Empty ? OrgMOperate.GetDeptById(deptId.Value) : OrgMOperate.GetEmpMainDept(empId, companyId); return(Json(new { CurrDept = currDept, DepthDept = depthDept })); }
/// <summary> /// 获取用户扩展信息 /// </summary> /// <param name="userInfo">用户信息</param> /// <returns></returns> public static UserExtendBase GetUserExtend(UserInfo userInfo) { if (userInfo == null) { return(null); } if (userInfo.ExtendUserObject != null) { return(userInfo.ExtendUserObject); } if (userInfo.EmpId.HasValue) { List <EmpExtendInfo> empExtends = new List <EmpExtendInfo>(); List <Guid> companyIds = OrgMOperate.GetEmpCompanys(userInfo.EmpId.Value).Select(x => x.Id).ToList(); if (companyIds.Count > 0) { foreach (Guid companyId in companyIds) { OrgM_Dept mainDept = OrgMOperate.GetEmpMainDept(userInfo.EmpId.Value, companyId); OrgM_Duty mainDuty = OrgMOperate.GetEmpMainDuty(userInfo.EmpId.Value, companyId); List <OrgM_Dept> partimeDepts = OrgMOperate.GetEmpPartTimeDepts(userInfo.EmpId.Value, companyId); List <OrgM_DeptDuty> partimePositions = OrgMOperate.GetPartTimePositions(userInfo.EmpId.Value, companyId); empExtends.Add(new EmpExtendInfo() { CompanyId = companyId, DeptId = mainDept != null ? mainDept.Id : (Guid?)null, DeptName = mainDept != null ? (string.IsNullOrEmpty(mainDept.Alias) ? mainDept.Name : mainDept.Alias) : string.Empty, DutyId = mainDuty != null ? mainDuty.Id : (Guid?)null, DutyName = mainDuty != null ? mainDuty.Name : string.Empty, PartimeDeptIds = partimeDepts != null && partimeDepts.Count > 0 ? partimeDepts.Select(x => x.Id).ToList() : null, PartimeDeptNames = partimeDepts != null && partimeDepts.Count > 0 ? partimeDepts.Select(x => x.Name).ToList() : null, PartimePositionIds = partimePositions != null && partimePositions.Count > 0 ? partimePositions.Select(x => x.Id).ToList() : null, PartimePositionNames = partimePositions != null && partimePositions.Count > 0 ? partimePositions.Select(x => x.Name).ToList() : null }); } } else { OrgM_Dept mainDept = OrgMOperate.GetEmpMainDept(userInfo.EmpId.Value); OrgM_Duty mainDuty = OrgMOperate.GetEmpMainDuty(userInfo.EmpId.Value); List <OrgM_Dept> partimeDepts = OrgMOperate.GetEmpPartTimeDepts(userInfo.EmpId.Value); List <OrgM_DeptDuty> partimePositions = OrgMOperate.GetPartTimePositions(userInfo.EmpId.Value); empExtends.Add(new EmpExtendInfo() { CompanyId = null, DeptId = mainDept != null ? mainDept.Id : (Guid?)null, DeptName = mainDept != null ? (string.IsNullOrEmpty(mainDept.Alias) ? mainDept.Name : mainDept.Alias) : string.Empty, DutyId = mainDuty != null ? mainDuty.Id : (Guid?)null, DutyName = mainDuty != null ? mainDuty.Name : string.Empty, PartimeDeptIds = partimeDepts != null && partimeDepts.Count > 0 ? partimeDepts.Select(x => x.Id).ToList() : null, PartimeDeptNames = partimeDepts != null && partimeDepts.Count > 0 ? partimeDepts.Select(x => x.Name).ToList() : null, PartimePositionIds = partimePositions != null && partimePositions.Count > 0 ? partimePositions.Select(x => x.Id).ToList() : null, PartimePositionNames = partimePositions != null && partimePositions.Count > 0 ? partimePositions.Select(x => x.Name).ToList() : null }); } UserExtendInfo userExtendInfo = new UserExtendInfo() { EmpExtend = empExtends }; List <Sys_UserRole> userRoles = PermissionOperate.GetAllUserRoles(x => x.Sys_RoleId != null && x.Sys_UserId == userInfo.UserId); if (userRoles.Count > 0) { userExtendInfo.RoleIds = userRoles.Select(x => x.Sys_RoleId).ToList(); userExtendInfo.RoleNames = userRoles.Select(x => x.Sys_RoleName).ToList(); } return(userExtendInfo); } else { UserExtendInfo userExtendInfo = new UserExtendInfo(); List <Sys_UserRole> userRoles = PermissionOperate.GetAllUserRoles(x => x.Sys_RoleId != null && x.Sys_UserId == userInfo.UserId); if (userRoles.Count > 0) { userExtendInfo.RoleIds = userRoles.Select(x => x.Sys_RoleId).ToList(); userExtendInfo.RoleNames = userRoles.Select(x => x.Sys_RoleName).ToList(); } return(userExtendInfo); } }
/// <summary> /// 添加职务 /// </summary> /// <returns></returns> public JsonResult AddDuty() { if (_Request == null) { _Request = Request; } Guid deptId = _Request.QueryEx("deptId").ObjToGuid(); if (deptId == Guid.Empty) { return(Json(new ReturnResult() { Success = false, Message = "请先选择部门" })); } OrgM_Dept dept = OrgMOperate.GetDeptById(deptId); if (dept == null) { return(Json(new ReturnResult() { Success = false, Message = "选择的部门不存在" })); } string dutyname = _Request.QueryEx("dutyname").ObjToStr(); if (string.IsNullOrWhiteSpace(dutyname)) { return(Json(new ReturnResult() { Success = false, Message = "职务名称不能为空" })); } string errMsg = string.Empty; long num = CommonOperate.Count <OrgM_Dept>(out errMsg, false, x => x.Name == dutyname); if (num > 0) { return(Json(new ReturnResult() { Success = false, Message = "该职务已存在,请不要重复添加" })); } UserInfo currUser = GetCurrentUser(_Request); Guid moduleId = SystemOperate.GetModuleIdByTableName("OrgM_Duty"); string code = SystemOperate.GetBillCode(moduleId); OrgM_Duty duty = new OrgM_Duty() { Code = code, Name = dutyname, IsValid = true, EffectiveDate = DateTime.Now, CreateDate = DateTime.Now, CreateUserId = currUser.UserId, CreateUserName = currUser.EmpName, ModifyDate = DateTime.Now, ModifyUserId = currUser.UserId, ModifyUserName = currUser.EmpName }; Guid dutyId = CommonOperate.OperateRecord <OrgM_Duty>(duty, ModelRecordOperateType.Add, out errMsg, null, false); if (dutyId != Guid.Empty) { SystemOperate.UpdateBillCode(moduleId, code); Guid?parentId = null; List <OrgM_DeptDuty> positions = OrgMOperate.GetDeptPositions(deptId); if (positions.Count > 0) { OrgM_DeptDuty leaderPosition = positions.Where(x => x.IsDeptCharge).FirstOrDefault(); if (leaderPosition != null) { parentId = leaderPosition.Id; } } Guid gwModuleId = SystemOperate.GetModuleIdByTableName("OrgM_DeptDuty"); string positionCode = SystemOperate.GetBillCode(gwModuleId); OrgM_DeptDuty position = new OrgM_DeptDuty() { Code = positionCode, Name = string.Format("{0}-{1}", string.IsNullOrEmpty(dept.Alias) ? dept.Name : dept.Alias, dutyname), OrgM_DeptId = deptId, OrgM_DutyId = dutyId, ParentId = parentId, IsValid = true }; Guid positionId = CommonOperate.OperateRecord <OrgM_DeptDuty>(position, ModelRecordOperateType.Add, out errMsg, null, false); if (positionId != Guid.Empty) { SystemOperate.UpdateBillCode(gwModuleId, positionCode); } return(Json(new { Success = true, Message = string.Empty, DutyId = dutyId })); } else { return(Json(new ReturnResult() { Success = false, Message = errMsg })); } }