using Google.Protobuf.WellKnownTypes; using OASystem.Domain.Dtos.UserDto; using OASystem.Infrastructure.Repositories.System; using System.ComponentModel.Design; namespace OASystem.API.Controllers { /// /// 系统设置 /// //[Authorize] [Route("api/[controller]/[action]")] public class SystemController : ControllerBase { private readonly CompanyRepository _syscomRep; private readonly DepartmentRepository _sysDepRep; private readonly UsersRepository _userRep; private readonly IMapper _mapper; private readonly SetDataRepository _setDataRepository; private readonly SystemMenuPermissionRepository _SystemMenuPermissionRepository; private readonly CompanyRepository _CompanyRepository; private readonly JobPostRepository _jobRep; public SystemController( CompanyRepository syscom,DepartmentRepository sysDepRep, UsersRepository userRep, IMapper mapper, SetDataRepository setDataRepository, CompanyRepository companyRepository, SystemMenuPermissionRepository systemMenuPermissionRepository, JobPostRepository jobRep) { _syscomRep = syscom; _sysDepRep = sysDepRep; _userRep = userRep; _mapper = mapper; _setDataRepository = setDataRepository; _CompanyRepository = companyRepository; _SystemMenuPermissionRepository = systemMenuPermissionRepository; _jobRep = jobRep; } #region 企业操作 /// /// 查询企业数据 /// /// /// [HttpPost] [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)] public async Task getCompanyList(DtoBase dto) { try { if (dto.PortType == 1) { var CompanyDataResult = _CompanyRepository.GetCompanyData(); if (CompanyDataResult.Code != 0) { return Ok(JsonView(CompanyDataResult.Msg)); } return Ok(JsonView(true, "查询成功!", CompanyDataResult.Data)); } else if (dto.PortType == 2) { var CompanyDataResult = _CompanyRepository.GetCompanyData(); if (CompanyDataResult.Code != 0) { return Ok(JsonView(CompanyDataResult.Msg)); } return Ok(JsonView(true,"查询成功!", CompanyDataResult.Data)); } else if (dto.PortType == 3) { return Ok(JsonView(false, "暂无数据!")); } else { return Ok(JsonView(false, "暂无数据!")); } } catch (Exception ex) { return Ok(JsonView(false, "程序错误!")); throw; } } /// /// 添加企业数据 /// /// /// [HttpPost] [ProducesResponseType(typeof(JsonView),StatusCodes.Status200OK)] public async Task AddCompany(AddCompanyDto dto) { try { if (string.IsNullOrWhiteSpace(dto.CompanyName) || dto.CreateUserId == 0 || string.IsNullOrWhiteSpace(dto.CompanyCode)) { return Ok(JsonView(false, "请检查信息是否输入完整!")); } else if (string.IsNullOrWhiteSpace(dto.Tel)) { return Ok(JsonView(false, "请检查联系方式是否输入正确!")); } else { Sys_Company _Company = _mapper.Map(dto); int id = await _syscomRep.AddAsyncReturnId(_Company); if (id == 0) { return Ok(JsonView(false, "添加失败!")); } return Ok(JsonView(true,"添加成功", new { Id = id })); } } catch (Exception) { return Ok(JsonView(false, "程序错误!")); throw; } } /// /// 企业修改 /// /// /// [HttpPost] [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)] public async TaskEditCompany(EditCompanyDto dto) { try { if (string.IsNullOrWhiteSpace(dto.CompanyName) || string.IsNullOrWhiteSpace(dto.CompanyCode) || string.IsNullOrWhiteSpace(dto.Address) || dto.ParentCompanyId == 0 || dto.ContactUserId == 0) { return Ok(JsonView(false, "请检查信息是否输入完整!")); } else if (string.IsNullOrWhiteSpace(dto.Tel)) { return Ok(JsonView(false, "请检查联系方式是否输入正确!")); } else { bool res = await _syscomRep.UpdateAsync(a => a.Id == dto.Id, a => new Sys_Company { CompanyName = dto.CompanyName, CompanyCode = dto.CompanyCode, Address = dto.Address, ParentCompanyId = dto.ParentCompanyId, Tel = dto.Tel, ContactUserId = dto.ContactUserId, }); if (!res) { return Ok(JsonView(false, "修改失败")); } return Ok(JsonView(true,"修改成功!")); } } catch (Exception) { return Ok(JsonView(false, "程序错误!")); throw; } } /// /// 企业删除 /// /// /// [HttpPost] [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)] public async Task DelCompany(DelCompanyDto dto) { try { bool res = await _syscomRep.SoftDeleteAsync(dto.Id.ToString()); if (!res) { return Ok(JsonView(false, "删除失败")); } return Ok(JsonView(true, "删除成功")); } catch (Exception) { return Ok(JsonView(false, "程序错误!")); throw; } } #endregion #region 部门操作 /// /// 查询部门数据 /// /// /// [HttpPost] [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)] public async Task QueryDepartmentList(DepartmentDto dto) { try { if (dto.PortType==1) { return Ok(JsonView(false, "暂无数据!")); } else if (dto.PortType==2) { var result = _sysDepRep.QueryDto(s => s.CompanyId == dto.CompanyId).ToList(); if (result.Count == 0) { return Ok(JsonView(false, "暂无数据!")); } return Ok(JsonView(true,"查询成功!",result)); } else if (dto.PortType == 3) { return Ok(JsonView(false, "暂无数据!")); } else { return Ok(JsonView(false, "暂无数据!")); } } catch (Exception ex) { return Ok(JsonView(false, "程序错误!")); throw; } } /// /// 部门添加 /// /// /// [HttpPost] [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)] public async Task AddDepartment(AddDepartmentDto dto) { try { if (dto.CreateUserId == 0 || string.IsNullOrWhiteSpace(dto.DepName) || dto.CompanyId == 0 || string.IsNullOrWhiteSpace(dto.DepCode)) { return Ok(JsonView(false, "请检查信息是否输入完整!")); } else { Sys_Department _Department = _mapper.Map(dto); int id = await _sysDepRep.AddAsyncReturnId(_Department); if (id == 0) { return Ok(JsonView(false, "添加失败!")); } return Ok(JsonView(true, "添加成功!", new { Id = id })); } } catch (Exception) { return Ok(JsonView(false, "程序错误!")); throw; } } /// /// 部门修改 /// /// /// [HttpPost] [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)] public async Task EditDepartment(EditDepartmentDto dto) { try { if (dto.Id==0 || string.IsNullOrWhiteSpace(dto.DepName) || dto.CompanyId == 0 || string.IsNullOrWhiteSpace(dto.DepCode)) { return Ok(JsonView(false, "请检查信息是否输入完整!")); } else { bool res = await _sysDepRep.UpdateAsync(a => a.Id == dto.Id, a => new Sys_Department { CompanyId=dto.CompanyId, DepCode=dto.DepCode, DepName=dto.DepName, ParentDepId=dto.ParentDepId, Remark=dto.Remark, }); if (!res) { return Ok(JsonView(false, "修改失败!")); } return Ok(JsonView(true, "修改成功!")); } } catch (Exception) { return Ok(JsonView(false, "程序错误!")); throw; } } /// /// 部门删除 /// /// /// [HttpPost] [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)] public async Task DelDepartment(DelDepartmentDto dto) { try { if (dto.Id == 0) { return Ok(JsonView(-1, "请检查信息是否输入完整!", null)); } else { bool res =await _sysDepRep.SoftDeleteAsync(dto.Id.ToString()); if (!res) { return Ok(JsonView(false, "删除失败!")); } return Ok(JsonView(true, "删除成功!")); } } catch (Exception) { return Ok(JsonView(false, "程序错误!")); throw; } } #endregion #region 岗位板块 /// /// 岗位查询 /// /// /// [HttpPost] [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)] public async Task QueryJobPost(QueryJobPostDto dto) { try { if (dto.PortType == 1) { return Ok(JsonView(false, "暂无数据!")); } else if (dto.PortType == 2) { var result = _jobRep.QueryDto(s => s.CompanyId == dto.CompanyId && s.DepId==dto.DepId).ToList(); if (result.Count == 0) { return Ok(JsonView(false, "暂无数据!")); } return Ok(JsonView(true, "查询成功!", result)); } else if (dto.PortType == 3) { return Ok(JsonView(false, "暂无数据!")); } else { return Ok(JsonView(false, "暂无数据!")); } } catch (Exception ex) { return Ok(JsonView(false, "程序错误!")); throw; } } /// /// 添加岗位 /// /// /// [HttpPost] [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)] public async Task AddJobPost(AddJobPostDto dto) { try { Sys_JobPost sys_Job = _mapper.Map(dto); int id = await _jobRep.AddAsyncReturnId(sys_Job); if (id == 0) { return Ok(JsonView(false, "添加失败")); } return Ok(JsonView(true, "添加成功", new { Id = id })); } catch (Exception ex) { return Ok(JsonView(false, "程序错误!")); throw; } } /// /// 修改岗位 /// /// /// [HttpPost] [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)] public async Task EditJobPost(EditJobPostDto dto) { try { bool res = await _jobRep.UpdateAsync(a=>a.Id==dto.Id,a =>new Sys_JobPost { CompanyId=dto.CompanyId, DepId=dto.DepId, JobName=dto.JobName, Remark=dto.Remark, }); if (!res) { return Ok(JsonView(false, "修改失败")); } return Ok(JsonView(true, "修改成功")); } catch (Exception ex) { return Ok(JsonView(false, "程序错误!")); throw; } } /// /// 删除岗位 /// /// /// [HttpPost] [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)] public async Task DelJobPost(DelJobPostDto dto) { try { bool res = await _jobRep.SoftDeleteAsync(dto.Id.ToString()); if (!res) { return Ok(JsonView(false, "删除失败!")); } return Ok(JsonView(true, "删除成功")); } catch (Exception) { return Ok(JsonView(false, "程序错误!")); throw; } } #endregion #region 用户操作 /// /// 查询所有员工(web) /// /// /// [HttpPost] [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)] public async Task GetUserList(DtoBase dto) { try { var result = _userRep.GetUserList(dto.PortType, string.Empty); if (result.Result.Code != 0) { return Ok(JsonView(false, "暂无数据!")); } return Ok(JsonView(true, "查询成功!", result.Result.Data)); } catch (Exception) { return Ok(JsonView(false, "程序错误!")); throw; } } /// /// 查询用户数据 /// /// /// [HttpPost] [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)] public async Task QueryUserList(UserDto dto) { try { string sqlWhere = string.Empty; if (dto.CompanyId!=0) { sqlWhere += string.Format(@" And su.CompanyId={0}", dto.CompanyId); } if (dto.DepId != 0) { sqlWhere += string.Format(@" And su.DepId={0}", dto.DepId); } if (!string.IsNullOrEmpty(sqlWhere.Trim())) { Regex r = new Regex("And"); sqlWhere = r.Replace(sqlWhere, "Where", 1); } var result=_userRep.GetUserList(dto.PortType,sqlWhere); if (result.Result.Code!=0) { return Ok(JsonView(false, "暂无数据!")); } return Ok(JsonView(true,"查询成功!",result.Result.Data)); } catch (Exception) { return Ok(JsonView(false, "程序错误!")); throw; } } /// /// 修改用户信息(上级修改/分配 公司、部门、岗位、工号等信息) /// /// /// [HttpPost] [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)] public async Task EditUser(EditUserDto dto) { try { bool res = await _userRep.UpdateAsync(a => a.Id == dto.Id, a => new Sys_Users { Number = dto.Number, CompanyId = dto.CompanyId, DepId = dto.DepId, JobPostId = dto.JobPostId, Ext = dto.Ext, UsePeriod = dto.UsePeriod, HrAudit = dto.HrAudit }); if (!res) { return Ok(JsonView(false, "修改失败!")); } return Ok(JsonView(true, "修改成功!")); } catch (Exception) { return Ok(JsonView(false, "程序错误!")); throw; } } /// /// 修改用户信息(登录用户修改个人信息) /// /// /// [HttpPost] [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)] public async Task EditMyUser(EditMyUserDto dto) { try { if (string.IsNullOrWhiteSpace(dto.CnName) || string.IsNullOrWhiteSpace(dto.Address) || string.IsNullOrWhiteSpace(dto.IDCard) || dto.Sex != 0 && dto.Sex != 1 || string.IsNullOrWhiteSpace(dto.MaritalStatus) || string.IsNullOrWhiteSpace(dto.HomeAddress)|| dto.Birthday>=DateTime.Now.AddYears(-1)) { return Ok(JsonView(false, "请完善你的个人信息!")); } else if (string.IsNullOrWhiteSpace(dto.GraduateInstitutions) || string.IsNullOrWhiteSpace(dto.Professional) || dto.Education == 0 || string.IsNullOrWhiteSpace(dto.GraduateInstitutions)) { return Ok(JsonView(false, "请完善你的学历信息!")); } else if (string.IsNullOrWhiteSpace(dto.Phone) || string.IsNullOrWhiteSpace(dto.UrgentPhone) || string.IsNullOrWhiteSpace(dto.Email)) { return Ok(JsonView(false, "请检查联系方式、紧急联系人及邮箱输写是否正确!")); } else { bool res = await _userRep.UpdateAsync(a => a.Id == dto.Id, a => new Sys_Users { CnName = dto.CnName, EnName = dto.EnName, Sex = dto.Sex, Phone = dto.Phone, UrgentPhone = dto.UrgentPhone, Email = dto.Email, Address = dto.Address, Edate = dto.Edate, Birthday = dto.Birthday, IDCard = dto.IDCard, GraduateInstitutions = dto.GraduateInstitutions, Professional = dto.Professional, Education = dto.Education, TheOrAdultEducation = dto.TheOrAdultEducation, MaritalStatus = dto.MaritalStatus, HomeAddress = dto.HomeAddress, WorkExperience = dto.WorkExperience, Certificate = dto.Certificate }); if (!res) { return Ok(JsonView(false, "修改失败!")); } return Ok(JsonView(true, "修改成功!")); } } catch (Exception) { return Ok(JsonView(false, "程序错误!")); throw; } } #endregion #region 权限模块 /// /// 权限数据页面初始化 /// /// /// //[Authorize] [HttpPost] [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)] public async Task GetAuth(AuthDto dto) { Result result = new Result(); //模块数据 var setDataResult = await _setDataRepository.GetSySDefultModule(_setDataRepository); if (setDataResult.Code != 0) { return Ok(JsonView(setDataResult.Msg)); } List setDataList = _mapper.Map>(setDataResult.Data); var mod = setDataList.Find(x => x.Name == "权限模块"); if (mod == null) { return Ok(JsonView("未找到权限模块!")); } //页面数据 var SystemMenuPermissionData = _SystemMenuPermissionRepository.GetSystemMenuViweData(_SystemMenuPermissionRepository, mod.Id, dto.pageSize, dto.currentPage); if (SystemMenuPermissionData.Code != 0) { return Ok(JsonView(SystemMenuPermissionData.Msg)); } //公司数据 var CompanyDataResult = _CompanyRepository.GetCompanyData(); if (CompanyDataResult.Code != 0) { return Ok(JsonView(CompanyDataResult.Msg)); } result.Code = 0; result.Msg = "成功!"; var Dyresult = new { setDataResult = setDataResult.Data, CompanyDataResult = CompanyDataResult.Data, SystemMenuPermissionData = SystemMenuPermissionData.Data }; return Ok(JsonView(200, "成功!", Dyresult)); } #endregion } }