using System.ComponentModel.DataAnnotations; using Dlhis.Basic.Organization.Request; using Dlhis.Basic.Organization.Response; using Dlhis.Basic.Organization.Services; using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop; using Kurisu.AspNetCore.Utils.Extensions; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace Dlhis.Basic.Organization.Controllers; /// /// 外包人员 /// [Authorize] [Route("api/[controller]")] [ApiController] public class GainfoOutsourceController : ControllerBase { private readonly IGainfoOutsourceService _gainfoOutSourceService; public GainfoOutsourceController(IGainfoOutsourceService gainfoOutSourceService) { _gainfoOutSourceService = gainfoOutSourceService; } /// /// 入职 /// /// [HttpPost("entry")] [Transactional] public async Task EntryAsync(GainfoOutsourceRequest request) { await _gainfoOutSourceService.SaveAsync(request); } /// /// 批量入职 /// /// [HttpPost("batchEntry")] [Transactional] public async Task EntryAsync(List requests) { (requests.DistinctBy(x => x.Factory).Count() > 1).ThrowIfTrue("仅支持单个基地外包人员导入"); foreach (var request in requests) { await _gainfoOutSourceService.SaveAsync(request); } } /// /// 编辑 /// /// [HttpPost("edit")] [Transactional] public async Task EditAsync(GainfoOutsourceRequest request) { await _gainfoOutSourceService.SaveAsync(request); } /// /// 获取外包人员额外信息 /// /// /// [AllowAnonymous] [HttpGet("info")] public async Task GetExternalInfoAsync([Required] string userNo) { return await _gainfoOutSourceService.GetExternalInfoAsync(userNo); } /// /// 自动离职处理 /// [AllowAnonymous] [HttpPost("autoResign")] [IgnoreTenant] public async Task AutoResignAsync() { await _gainfoOutSourceService.AutoResignAsync(); } }