using MathNet.Numerics.Distributions; using NPOI.POIFS.Crypt.Dsig; using NPOI.SS.Formula.Functions; using OASystem.Domain; using OASystem.Domain.Entities.Groups; using OASystem.Domain.Entities.System; using OASystem.Domain.ViewModels.QiYeWeChat; namespace OASystem.Infrastructure.Repositories.System { public class CompanyRepository : BaseRepository { public CompanyRepository(SqlSugarClient sqlSugar) : base(sqlSugar) { } public async Task AddCompany(Sys_Company company) { Result result = new Result() { Code = -2, Msg = "未知错误" }; try { BeginTran(); Sys_Company Company = _sqlSugar.Queryable().First(a => a.CompanyName == company.CompanyName && a.IsDel == 0); if (Company != null) { return result = new Result() { Code = -1, Msg = "该公司已存在,请勿重复添加!"}; } else { int CompanyId = 0; int DepartmentId = 0; int JobPostId = 0; int UsersId = 0; CompanyId = await AddAsyncReturnId(company); if (CompanyId > 0) { #region 添加默认部门 Sys_Department _Department = new Sys_Department(); _Department.CompanyId = CompanyId; _Department.DepName = "默认部门"; _Department.DepCode = "00"; _Department.ParentDepId = 0; _Department.CreateUserId = company.CreateUserId; _Department.Remark = "添加公司时默认生成部门,可修改!"; _Department.IsDel = 0; DepartmentId = await _sqlSugar.Insertable(_Department).ExecuteReturnIdentityAsync(); #endregion if (DepartmentId>0) { #region 添加默认岗位 Sys_JobPost _JobPost = new Sys_JobPost(); _JobPost.CompanyId = CompanyId; _JobPost.DepId = DepartmentId; _JobPost.JobName = "默认岗位"; _JobPost.CreateUserId = company.CreateUserId; _JobPost.Remark = "添加公司时默认生成岗位,可修改!"; _JobPost.IsDel = 0; JobPostId = await _sqlSugar.Insertable(_JobPost).ExecuteReturnIdentityAsync(); #endregion if (JobPostId>0) { #region 添加默认管理员 Sys_Users _Users = new Sys_Users(); _Users.CnName = "管理员"; _Users.EnName = "Guan LiYuan"; _Users.Number = CompanyId.ToString() + DepartmentId.ToString() + JobPostId.ToString()+"01"; _Users.CompanyId = CompanyId; _Users.DepId = DepartmentId; _Users.JobPostId = JobPostId; _Users.Password = "123456"; _Users.Sex = 0; _Users.HrAudit = 1; _Users.CreateUserId = company.CreateUserId; _Users.Remark = "添加公司时默认生成管理员,Number可修改!"; _Users.IsDel = 0; UsersId = await _sqlSugar.Insertable(_Users).ExecuteReturnIdentityAsync(); if (UsersId>0) { List fid = new List();//功能权限 List SmId=new List();//页面权限 List adds = new List(); List sys_PageFunctionPermissions = _sqlSugar.Queryable().Where(a=>a.IsDel==0).ToList(); foreach (var item in sys_PageFunctionPermissions) { fid.Add(item.Id); } List _SystemMenuPermissions = _sqlSugar.Queryable().Where(a => a.IsDel == 0 && (a.Mid==12 || a.Mid==13 || a.Mid==17) && a.WebUrl!="Null" && a.WebUrl!="/" && a.IsEnable==1).ToList(); foreach(var item in _SystemMenuPermissions) { SmId.Add(item.Id); } for (int i = 0;i< SmId.Count; i++) { for (int j = 0; j < fid.Count; j++) { adds.Add(new Sys_UserAuthority { CreateTime = DateTime.Now, CreateUserId = company.CreateUserId, FId = fid[j], UId = UsersId, SmId = SmId[i], IsTemp = 0 }); } } _sqlSugar.Insertable(adds).ExecuteCommand(); } else { RollbackTran(); result = new Result() { Code = 0, Msg = "默认管理员添加失败!" }; } #endregion } else { RollbackTran(); result = new Result() { Code = 0, Msg = "默认岗位添加失败!" }; } } else { RollbackTran(); result = new Result() { Code = 0, Msg = "默认部门添加失败!" }; } CommitTran(); var data = new { Number = CompanyId.ToString() + DepartmentId.ToString() + JobPostId.ToString() + "01", Password = "123456", }; result = new Result() { Code = 0, Msg = "添加成功!可通过Number和密码登录进去管理!初始密码为:123456", }; } else { result = new Result() { Code = -1, Msg = "添加失败!请稍后重试!" }; } } } catch (Exception ex) { return result = new Result() { Code = -2, Msg = "未知错误" }; } return result; } /// /// 获取所有公司数据 /// /// /// public Result GetCompanyData() { Result result = new Result(); string sql = "select * from Sys_Company where isdel = 0"; var DBdata = GetListBySqlWithNolock(sql); if (DBdata == null || DBdata.Count == 0) { result.Code = -1; result.Msg = "暂无数据!"; return result; } result.Code = 0; result.Msg = "成功!"; result.Data = DBdata; return result; } /// /// 获取公司名称数据 /// /// /// public async Task GetCompanyNameData() { Result result = new Result(); string sql = "Select Id,CompanyName From Sys_Company Where IsDel = 0"; var companyNameData = await _sqlSugar.SqlQueryable(sql).ToListAsync(); if (companyNameData == null || companyNameData.Count == 0) { result.Code = -1; result.Msg = "暂无数据!"; return result; } result.Code = 0; result.Msg = "成功!"; result.Data = companyNameData; return result; } } }