Files
jinko.yikatong/Src/Dlhis.Basic/Organization/Controllers/GainfoOutsourceController.cs
2025-12-10 14:05:17 +08:00

124 lines
3.6 KiB
C#

using System.ComponentModel.DataAnnotations;
using Dlhis.Basic.Organization.Dto;
using Dlhis.Basic.Organization.Request;
using Dlhis.Basic.Organization.Response;
using Dlhis.Basic.Organization.Services;
using Dlhis.Basic.Organization.Services.Implements;
using Kurisu.AspNetCore.DataAccess.Dto;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop;
using Kurisu.AspNetCore.Utils.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace Dlhis.Basic.Organization.Controllers;
/// <summary>
/// 外包人员
/// </summary>
[Authorize]
[Route("api/[controller]")]
[ApiController]
public class GainfoOutsourceController : ControllerBase
{
private readonly IGainfoOutsourceService _gainfoOutSourceService;
private readonly IOutsourceWhiteListService _outsourceWhiteList;
public GainfoOutsourceController(IGainfoOutsourceService gainfoOutSourceService, IOutsourceWhiteListService outsourceWhiteList)
{
_gainfoOutSourceService = gainfoOutSourceService;
_outsourceWhiteList = outsourceWhiteList;
}
/// <summary>
/// 入职
/// </summary>
/// <param name="request"></param>
[HttpPost("entry")]
[Transactional]
public async Task EntryAsync(GainfoOutsourceRequest request)
{
await _gainfoOutSourceService.SaveAsync(request);
}
/// <summary>
/// 批量入职
/// </summary>
/// <param name="requests"></param>
[HttpPost("batchEntry")]
[Transactional]
public async Task EntryAsync(List<GainfoOutsourceRequest> requests)
{
(requests.DistinctBy(x => x.Factory).Count() > 1).ThrowIfTrue("仅支持单个基地外包人员导入");
foreach (var request in requests)
{
await _gainfoOutSourceService.SaveAsync(request);
}
}
/// <summary>
/// 编辑
/// </summary>
/// <param name="request"></param>
[HttpPost("edit")]
[Transactional]
public async Task EditAsync(GainfoOutsourceRequest request)
{
await _gainfoOutSourceService.SaveAsync(request);
}
/// <summary>
/// 获取外包人员额外信息
/// </summary>
/// <param name="userNo"></param>
/// <returns></returns>
[AllowAnonymous]
[HttpGet("info")]
public async Task<GainfoOutSourceExternalInfoResponse> GetExternalInfoAsync([Required] string userNo)
{
return await _gainfoOutSourceService.GetExternalInfoAsync(userNo);
}
/// <summary>
/// 自动离职处理
/// </summary>
[AllowAnonymous]
[HttpPost("autoResign")]
[IgnoreTenant]
public async Task AutoResignAsync()
{
await _gainfoOutSourceService.AutoResignAsync();
}
/// <summary>
/// 获取外包白名单分页数据
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost("whiteListPage")]
public async Task<Pagination<GainfoDto>> GetPageAsync(OutsourceWhiteListPageRequest request)
{
return await _outsourceWhiteList.GetPageAsync(request);
}
/// <summary>
/// 添加外包白名单
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost("setWhiteList")]
public async Task AddAsync(OutsourceWhiteListAddAndRemoveRequest request)
{
await _outsourceWhiteList.AddAsync(request.UserCode);
}
/// <summary>
/// 移除外包白名单
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost("removeWhiteList")]
public async Task RemoveAsync(OutsourceWhiteListAddAndRemoveRequest request)
{
await _outsourceWhiteList.RemoveAsync(request.UserCode);
}
}