124 lines
3.6 KiB
C#
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);
|
|
}
|
|
} |