/// <summary> /// 删除数据 /// </summary> /// <param name="keyValue">主键</param> public void RemoveForm(string keyValue) { BaseManage.DepartmentService dal = new BaseManage.DepartmentService(); dal.RemoveForm(keyValue); this.BaseRepository().Delete(keyValue); }
/// <summary> /// 保存表单(新增、修改) /// </summary> /// <param name="keyValue">主键值</param> /// <param name="entity">实体对象</param> /// <returns></returns> public void SaveForm(string keyValue, HrDepartmentEntity entity) { if (!string.IsNullOrEmpty(keyValue)) { entity.Modify(keyValue); this.BaseRepository().Update(entity); Entity.BaseManage.DepartmentEntity dent = new Entity.BaseManage.DepartmentEntity(); dent.DepartmentId = keyValue; dent.OrganizeId = "207fa1a9-160c-4943-a89b-8fa4db0547ce"; dent.ParentId = "0"; dent.EnCode = keyValue; dent.FullName = entity.deptname; dent.OuterPhone = entity.managerphone; dent.Manager = entity.manager; BaseManage.DepartmentService dal = new BaseManage.DepartmentService(); dal.SavesForm(keyValue, dent); } else { //entity.Create(); //this.BaseRepository().Insert(entity); StringBuilder strSql = new StringBuilder(); strSql.Append("insert into hr_department("); strSql.Append("deptname,manager,phone,managerphone)"); strSql.Append(" values ("); strSql.Append("@deptname,@manager,@phone,@managerphone)"); strSql.Append(";select @@IDENTITY"); DbParameter[] parameter = { DbParameters.CreateDbParameter("@deptname", entity.deptname), DbParameters.CreateDbParameter("@manager", entity.manager), DbParameters.CreateDbParameter("@phone", entity.phone), DbParameters.CreateDbParameter("@managerphone", entity.managerphone) }; object obj = this.BaseRepository().FindObject(strSql.ToString(), parameter); if (obj != null) { Entity.BaseManage.DepartmentEntity dent = new Entity.BaseManage.DepartmentEntity(); dent.DepartmentId = obj.ToString(); dent.OrganizeId = "207fa1a9-160c-4943-a89b-8fa4db0547ce"; dent.ParentId = "0"; dent.EnCode = obj.ToString(); dent.FullName = entity.deptname; dent.OuterPhone = entity.managerphone; dent.Manager = entity.manager; BaseManage.DepartmentService dal = new BaseManage.DepartmentService(); dal.SavesForm("", dent); } } }
/// <summary> /// 保存表单(新增、修改) /// </summary> /// <param name="keyValue">主键值</param> /// <param name="entity">实体对象</param> /// <returns></returns> public void SaveForm(string keyValue, TransferEntity entity) { //开始事物 var res = DbFactory.Base().BeginTrans(); try { Repository <UserEntity> inlogdb = new Repository <UserEntity>(DbFactory.Base()); string sql = string.Format("select * from base_user where userid ='{0}' ", entity.UserId); UserEntity user = inlogdb.FindList(sql).FirstOrDefault(); Repository <DepartmentEntity> deptdb = new Repository <DepartmentEntity>(DbFactory.Base()); string deptsql = string.Format("select * from base_Department where departmentid ='{0}' ", entity.OutDeptId); DepartmentEntity dept = deptdb.FindList(deptsql).FirstOrDefault(); if (entity.IsConfirm == 0 || keyValue != "") { if (keyValue == "") { entity.Create(); entity.OutDeptCode = dept.EnCode; entity.CreateUserName = OperatorProvider.Provider.Current().UserName; res.Insert <TransferEntity>(entity); } else { entity.Modify(keyValue); //confirm为2的时候表示已完成 entity.IsConfirm = 2; res.Update <TransferEntity>(entity); } //根据部门id获取所属机构Code Repository <DepartmentEntity> organdb = new Repository <DepartmentEntity>(DbFactory.Base()); string organsql = string.Format("select * from base_department where departmentid='{0}' ", dept.OrganizeId); DepartmentEntity organ = organdb.FindList(organsql).FirstOrDefault(); user.OrganizeCode = organ.EnCode; if (entity.OutJobId != null && entity.OutJobId != "") { string postcode = ""; Repository <RoleEntity> postdb = new Repository <RoleEntity>(DbFactory.Base()); string postsql = string.Format("select * from base_role where category=3 "); IEnumerable <RoleEntity> rlist = postdb.FindList(postsql); string[] Postids = entity.OutJobId.Split(','); for (int i = 0; i < Postids.Length; i++) { RoleEntity ro = rlist.Where(it => it.RoleId == Postids[i]).FirstOrDefault(); if (ro != null) { if (postcode == "") { postcode = ro.EnCode; } else { postcode += "," + ro.EnCode; } } } user.PostCode = postcode; user.PostName = entity.OutJobName; user.PostId = entity.OutJobId; } else { user.PostCode = ""; user.PostName = ""; user.PostId = ""; } //如果不需要确认 则直接修改用户的部门 岗位 职务信息 user.DutyId = entity.OutPostId; user.DutyName = entity.OutPostName; user.DepartmentId = entity.OutDeptId; user.DepartmentCode = dept.EnCode; #region 给转岗用户赋默认角色 string roleName = ""; string roleId = ""; Repository <RoleEntity> roledb = new Repository <RoleEntity>(DbFactory.Base()); //如果选择的是厂级部门的话,角色会默认追加“厂级部门用户” if (!(string.IsNullOrEmpty(user.DepartmentId) || user.DepartmentId == "undefined")) { Repository <DepartmentEntity> roledeptandb = new Repository <DepartmentEntity>(DbFactory.Base()); if (roledeptandb.FindEntity(user.DepartmentId).IsOrg == 1) { roleName += "厂级部门用户,"; var expression = LinqExtensions.True <RoleEntity>(); expression = expression.And(t => t.Category == 1).And(t => t.EnabledMark == 1).And(t => t.DeleteMark == 0); RoleEntity cj = roledb.IQueryable(expression).OrderByDescending(t => t.CreateDate).ToList().Where(a => a.FullName == "厂级部门用户").FirstOrDefault(); if (cj != null) { roleId += cj.RoleId + ","; } } } var expression1 = LinqExtensions.True <RoleEntity>(); expression1 = expression1.And(t => t.Category == 2).And(t => t.EnabledMark == 1).And(t => t.DeleteMark == 0); IEnumerable <RoleEntity> role = roledb.IQueryable(expression1).OrderByDescending(t => t.CreateDate).ToList().Where(a => a.RoleId == user.DutyId); RoleEntity roleentity = role.FirstOrDefault(); if (roleentity != null) { roleName += roleentity.RoleNames; roleId += roleentity.RoleIds; } user.RoleId = roleId; user.RoleName = roleName; #endregion #region 默认添加 角色、岗位、职位 res.Delete <UserRelationEntity>(t => t.IsDefault == 1 && t.UserId == user.UserId); List <UserRelationEntity> userRelationEntitys = new List <UserRelationEntity>(); var currUser = OperatorProvider.Provider.Current(); string uid = currUser == null ? "" : currUser.UserId; string uname = currUser == null ? "" : currUser.UserName; //用户 userRelationEntitys.Add(new UserRelationEntity { Category = 6, UserRelationId = Guid.NewGuid().ToString(), UserId = user.UserId, ObjectId = user.UserId, CreateDate = DateTime.Now, CreateUserId = uid, CreateUserName = uname, IsDefault = 1, }); //角色 string[] arr = user.RoleId.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); foreach (string item in arr) { userRelationEntitys.Add(new UserRelationEntity { Category = 2, UserRelationId = Guid.NewGuid().ToString(), UserId = user.UserId, ObjectId = item, CreateDate = DateTime.Now, CreateUserId = uid, CreateUserName = uname, IsDefault = 1, }); } //岗位 if (!string.IsNullOrEmpty(user.DutyId)) { userRelationEntitys.Add(new UserRelationEntity { Category = 3, UserRelationId = Guid.NewGuid().ToString(), UserId = user.UserId, ObjectId = user.DutyId, CreateDate = DateTime.Now, CreateUserId = uid, CreateUserName = uname, IsDefault = 1, }); } //职位 if (!string.IsNullOrEmpty(user.PostId)) { userRelationEntitys.Add(new UserRelationEntity { Category = 4, UserRelationId = Guid.NewGuid().ToString(), UserId = user.UserId, ObjectId = user.PostId, CreateDate = DateTime.Now, CreateUserId = uid, CreateUserName = uname, IsDefault = 1, }); } res.Insert <UserRelationEntity>(userRelationEntitys); #endregion user.OrganizeId = dept.OrganizeId; user.IsTransfer = 0; //转岗完成将记录加入到记录表中 Repository <WorkRecordEntity> workdb = new Repository <WorkRecordEntity>(DbFactory.Base()); //找到之前没有结尾的工作记录填写结束时间 string Worksql = string.Format("update BIS_WORKRECORD set leavetime=to_date('{2}','yyyy-mm-dd hh24:mi:ss') where id=(select id from (select id from BIS_WORKRECORD t where userid='{0}' and deptid='{1}' and WorkType=1 and LeaveTime =to_date('0001-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss') order by createdate desc) a where rownum=1) ", user.UserId, entity.InDeptId, entity.TransferTime); res.ExecuteBySql(Worksql); #region 如果是班组将部门名称转换成 部门/班组 Repository <DepartmentEntity> deptdb1 = new Repository <DepartmentEntity>(DbFactory.Base()); string deptsql1 = string.Format("select * from base_Department where departmentid ='{0}' ", entity.OutDeptId); DepartmentEntity dept1 = deptdb1.FindList(deptsql1).FirstOrDefault(); string DeptName = ""; bool flag = true; while (dept1 != null && flag) { if (DeptName == null || DeptName == "") { DeptName = dept1.FullName; } else { if (dept1.FullName != DeptName)//班组同步过来的信息会本身会有名称 会出现xx|xx重复数据 { DeptName = dept1.FullName + "|" + DeptName; } } if (dept1.Nature == "班组" || dept1.Nature == "专业") { flag = true; } else { flag = false; } Repository <DepartmentEntity> Newdeptdb = new Repository <DepartmentEntity>(DbFactory.Base()); string newsql = string.Format("select * from base_Department where departmentid ='{0}' ", dept1.ParentId); dept1 = Newdeptdb.FindList(newsql).FirstOrDefault(); } #endregion //新增一条新的岗位记录 WorkRecordEntity workEntity = new WorkRecordEntity { Id = Guid.NewGuid().ToString(), DeptCode = user.DepartmentCode, DeptId = user.DepartmentId, EnterDate = Convert.ToDateTime(entity.TransferTime), UserId = user.UserId, UserName = user.RealName, DeptName = DeptName, PostName = user.DutyName, CreateDate = DateTime.Now, CreateUserId = OperatorProvider.Provider.Current().UserId, OrganizeName = organ.FullName, JobName = user.PostName, WorkType = 1 }; res.Insert <WorkRecordEntity>(workEntity); } else { entity.Create(); entity.OutDeptCode = dept.EnCode; entity.CreateUserName = OperatorProvider.Provider.Current().UserName; res.Insert <TransferEntity>(entity); //如果需要确认则修改用户状态 user.IsTransfer = 1; } if (!string.IsNullOrEmpty(user.DepartmentId)) { DepartmentEntity depart = new BaseManage.DepartmentService().GetEntity(user.DepartmentId); if (depart != null) { //重新处理承包商级用户关联的部门信息 if (depart.Nature == "承包商") { sql = string.Format("select d.departmentid,d.encode from BASE_DEPARTMENT d where d.parentid=(select t.departmentid from BASE_DEPARTMENT t where t.organizeid='{0}' and t.description='外包工程承包商') and instr('{1}',d.encode)>0", user.OrganizeId, depart.EnCode); DataTable dtDept = BaseRepository().FindTable(sql); if (dtDept.Rows.Count > 0) { user.NickName = depart.DepartmentId; //存储承包商或下属部门的Id } } else { user.NickName = user.DepartmentId; } } } user.Modify(user.UserId); res.Update <UserEntity>(user); res.Commit(); } catch (Exception ex) { res.Rollback(); throw ex; } }