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
}
}