228 lines
6.4 KiB
C#
228 lines
6.4 KiB
C#
using Dlhis.Basic.Organization.Filters;
|
|
using Dlhis.Basic.Organization.Request;
|
|
using Dlhis.Basic.Organization.Response;
|
|
using Dlhis.Basic.Organization.Services;
|
|
using Kurisu.AspNetCore.DataAccess.Dto;
|
|
using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop;
|
|
using Kurisu.AspNetCore.UnifyResultAndValidation;
|
|
using Kurisu.AspNetCore.UnifyResultAndValidation.Aop;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace Dlhis.Basic.Organization.Controllers;
|
|
|
|
/// <summary>
|
|
/// sap档案表
|
|
/// </summary>
|
|
[Authorize]
|
|
[Route("api/[controller]")]
|
|
[ApiController]
|
|
public class GainfosController : ControllerBase
|
|
{
|
|
private readonly IGainfoService _gainfoService;
|
|
private readonly IGainfoFaceService _gainfoFaceService;
|
|
|
|
public GainfosController(IGainfoService gainfoService, IGainfoFaceService gainfoFaceService)
|
|
{
|
|
_gainfoService = gainfoService;
|
|
_gainfoFaceService = gainfoFaceService;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 档案分页
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[DisableApiLog]
|
|
[HttpPost("page")]
|
|
public async Task<Pagination<GainfoPageResponse>> GetPageAsync(GainfoPageRequest request)
|
|
{
|
|
return await _gainfoService.GetPageAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 档案详情
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("detail")]
|
|
public async Task<GainfoDetailResponse> GetGainfoDetailAsync([FromQuery] GainfoDetailRequest request)
|
|
{
|
|
return await _gainfoService.GetGainfoDetailAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 档案分页(所有人)
|
|
/// </summary>
|
|
/// <param name="code"></param>
|
|
/// <returns></returns>
|
|
[DisableApiLog]
|
|
[HttpGet("page-all")]
|
|
public async Task<Pagination<GainfoAllPageResponse>> GetPageByCodeAsync(string code)
|
|
{
|
|
return await _gainfoService.GetPageByCodeAsync(code);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 当前人员信息,余额
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpGet("current")]
|
|
[IgnoreTenant]
|
|
public async Task<GainfoCurrentResponse> CurrentUserInfoAsync()
|
|
{
|
|
return await _gainfoService.CurrentUserInfoAsync();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 上传人脸照片
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[DisableApiLog]
|
|
[HttpPost("face")]
|
|
[IgnoreTenant]
|
|
[Transactional]
|
|
public async Task<DefaultApiResult<object>> UploadFaceAsync(GainfoUploadFaceRequest request)
|
|
{
|
|
var r = new DefaultApiResult<object>();
|
|
var rr = await _gainfoFaceService.UploadFaceAsync(request);
|
|
|
|
r.Code = rr.Code;
|
|
r.Data = rr.Data;
|
|
r.Msg = rr.Msg;
|
|
return r;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 上传外部人员人脸照片
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[DisableApiLog]
|
|
[AllowAnonymous]
|
|
[IgnoreTenant]
|
|
[HttpPost("external/face")]
|
|
public async Task UploadExternalFaceAsync(GainfoUploadFaceRequest request)
|
|
{
|
|
await _gainfoFaceService.UploadExternalFaceAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取外部人员人脸照片
|
|
/// </summary>
|
|
/// <param name="idno"></param>
|
|
/// <returns></returns>
|
|
[DisableApiLog]
|
|
[AllowAnonymous]
|
|
[HttpGet("external/face")]
|
|
public async Task<string> GetExternalFaceAsync(string idno)
|
|
{
|
|
return await _gainfoFaceService.GetExternalFaceAsync(idno);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 批量上传人脸照片
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[DisableApiLog]
|
|
[HttpPost("batchface")]
|
|
[IgnoreTenant]
|
|
public async Task UploadFaceAsync(List<GainfoUploadFaceRequest> request)
|
|
{
|
|
await _gainfoFaceService.UploadFacesAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 通过token获取人脸照片,失效或者找不到返回HttpStatus404状态码
|
|
/// </summary>
|
|
/// <param name="token"></param>
|
|
/// <returns></returns>
|
|
[NotFound]
|
|
[AllowAnonymous]
|
|
[HttpGet("face")]
|
|
public async Task<IActionResult> GetFaceAsync(string token)
|
|
{
|
|
return await _gainfoFaceService.GetFaceAsync(token);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 通过学工号获取人脸照片url地址
|
|
/// </summary>
|
|
/// <param name="userCode"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("face/{userCode}")]
|
|
public async Task<string> GetFaceByUserCodeAsync(string userCode)
|
|
{
|
|
return await _gainfoFaceService.GetFaceByUserCodeAsync(userCode);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 批量获取人脸照片url地址
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[IgnoreDataCase]
|
|
[HttpPost("faces")]
|
|
public async Task<Dictionary<string, string>> GetFaceByUserCodesAsync(GetFaceByUserCodesRequest request)
|
|
{
|
|
return await _gainfoFaceService.GetFaceByUserCodesAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 档案列表
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("list")]
|
|
public async Task<Pagination<GainfoListResponse>> GetGainfoListTaskAsync([FromQuery] GainfoListRequest request)
|
|
{
|
|
return await _gainfoService.GetGainfoListAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 数据迁移
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[AllowAnonymous]
|
|
[HttpPost("migrations")]
|
|
public async Task MigrationAsync(MigrationRequest request)
|
|
{
|
|
await _gainfoService.MigrationAsync(request);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 检查idno和名称是否匹配
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[AllowAnonymous]
|
|
[HttpPost("check/idnoWithName")]
|
|
public async Task<object> CheckIdNoAndNameMatchAsync(GainfoCheckIdNoAndNameRequest request)
|
|
{
|
|
return await _gainfoService.CheckIdNoAndNameMatchAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 离职
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
[HttpPost("resign")]
|
|
[Transactional]
|
|
public async Task ResignAsync(GainfoResignRequest request)
|
|
{
|
|
await _gainfoService.ResignAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 设置安检白名单
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
[HttpPost("setSecurityWhite")]
|
|
[Transactional]
|
|
[CrossTenant]
|
|
public async Task SetSecurityWhiteAsync(GainfoSetSecurityWhiteRequest request)
|
|
{
|
|
await _gainfoService.SetSecurityWhiteAsync(request.UserCode);
|
|
}
|
|
} |