feat 获取本基地管理员列表

This commit is contained in:
cheche
2024-02-21 14:59:23 +08:00
parent 7f7afb251c
commit ef60f1dffc
7 changed files with 103 additions and 2 deletions

View File

@@ -196,5 +196,18 @@ public class GainfosController : ControllerBase
return await _gainfoService.GetGainfoNumbersAsync(token);
}
/// <summary>
/// 获取本基地管理员列表
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpGet("administrator")]
public async Task<Pagination<GainfoDetailResponse>> GetAdministratorAsync([FromQuery] WeekNumberRequest request)
{
// 从请求头中获取 Token
string token = HttpContext.Request.Headers["Authorization"].ToString().Replace("Bearer ", "");
return await _gainfoService.GetAdministratorAsync(request,token);
}
}

View File

@@ -37,4 +37,6 @@ public interface IGainfoService : IScopeDependency
Task<Dictionary<string, Pagination<GainfoDetailResponse>>> GetDimissionWeekNumberAsync([FromQuery] WeekNumberRequest request, string token);
Task<GainfoGainfoNumbersResponse> GetGainfoNumbersAsync(string token);
Task<Pagination<GainfoDetailResponse>> GetAdministratorAsync(WeekNumberRequest request,string token);
}

View File

@@ -514,6 +514,44 @@ public class GainfoService : IGainfoService
return res;
}
public async Task<Pagination<GainfoDetailResponse>> GetAdministratorAsync( WeekNumberRequest request, string token)
{
var werks = GetClaimValueFromToken(token, "tenant");
var info = await _gainfoStore.Queryable(GainfoStatusEnumType.Working)
.LeftJoin<DepartmentEntity>((ga, de) => ga.DepartmentNo == de.No)
.LeftJoin<BasicTypeEntity>((ga, de, type) => ga.Native == type.Code && type.Type == "native")
.LeftJoin<PositionEntity>((ga, de, type, posi) => ga.Position == posi.Name)
.LeftJoin<BasicTypeEntity>((ga, de, type, posi, type2) => ga.CountryNo == type2.Code && type2.Type == "country")
.LeftJoin<BasicTypeEntity>((ga, de, type, posi, type2, type3) => ga.Nation == type3.Code && type3.Type == "nation")
.Where(ga => ga.Werks == werks && ga.IdentityUserId != 0)
.Select((ga, de, type, posi, type2, type3) => new GainfoDetailResponse
{
No = ga.No,
SapNo = ga.SapNo,
Name = ga.Name,
Code = ga.Code,
DepartmentName = de.Name,
IdClass = ga.IdClass,
IdNo = ga.IdNo,
Gender = ga.Gender,
NativeName = type.Display,
Address = ga.Address,
Birthday = ga.Birthday,
Phone = ga.Phone,
Position = ga.Position,
Grade = posi.Grade,
Degree = ga.Degree,
Werks = ga.Werks,
CostId = ga.CostId,
Marital = ga.Marital,
CountryName = type2.Display,
NationName = type3.Display,
IsActive = ga.Employed == "Active" ? true : false,
}).ToPageListAsync(request);
return info;
}
//-------------------------------------------help methods ------------------------------------------------
/// <summary>