Merge branch 'Feature/roll-call/current-day-api' into Main

This commit is contained in:
2025-11-01 12:15:52 +03:30
5 changed files with 42 additions and 2 deletions

View File

@@ -79,4 +79,5 @@ public interface IEmployeeRepository : IRepository<long, Employee>
#endregion
Task<List<EmployeeSelectListViewModel>> GetWorkingEmployeesSelectList(long workshopId);
}

View File

@@ -76,6 +76,7 @@ public interface IEmployeeApplication
Task<List<EmployeeSelectListViewModel>> WorkedEmployeesInWorkshopSelectList(long workshopId);
Task<OperationResult<EmployeeDataFromApiViewModel>> GetEmployeeDataFromApi(string nationalCode, string birthDate);
Task<List<EmployeeSelectListViewModel>> GetWorkingEmployeesSelectList(long workshopId);
#endregion

View File

@@ -1676,6 +1676,10 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
}
public async Task<List<EmployeeSelectListViewModel>> GetWorkingEmployeesSelectList(long workshopId)
{
return await _EmployeeRepository.GetWorkingEmployeesSelectList(workshopId);
}
#endregion

View File

@@ -1062,5 +1062,29 @@ public class EmployeeRepository : RepositoryBase<long, Employee>, IEmployeeRepos
}
#endregion
public async Task<List<EmployeeSelectListViewModel>> GetWorkingEmployeesSelectList(long workshopId)
{
var dateNow = DateTime.Now.Date;
var workshopActiveLeftWorksQuery = _context.LeftWorkList.Where(x => x.WorkshopId == workshopId &&
x.StartWorkDate <= dateNow && x.LeftWorkDate > dateNow);
var workshopActiveInsuranceLeftWorksQuery = _context.LeftWorkInsuranceList.Where(x => x.WorkshopId == workshopId &&
x.StartWorkDate <= dateNow && (x.LeftWorkDate > dateNow || x.LeftWorkDate == null));
var employeesQuery = _context.Employees.Where(x => workshopActiveLeftWorksQuery.Any(y => y.EmployeeId == x.id) ||
workshopActiveInsuranceLeftWorksQuery.Any(y => y.EmployeeId == x.id));
return await employeesQuery.Select(x => new EmployeeSelectListViewModel()
{
Id = x.id,
EmployeeFullName = x.FullName
}).ToListAsync();
}
#endregion
}

View File

@@ -1,5 +1,6 @@
using _0_Framework.Application;
using Company.Domain.CheckoutAgg;
using CompanyManagment.App.Contracts.Employee;
using CompanyManagment.App.Contracts.RollCall;
using Microsoft.AspNetCore.Mvc;
using ServiceHost.BaseControllers;
@@ -10,10 +11,12 @@ public class RollCallController:ClientBaseController
{
private long _workshopId;
private readonly IRollCallApplication _rollCallApplication;
private readonly IEmployeeApplication _employeeApplication;
public RollCallController(IRollCallApplication rollCallApplication,IAuthHelper authHelper)
public RollCallController(IRollCallApplication rollCallApplication,IAuthHelper authHelper, IEmployeeApplication employeeApplication)
{
_rollCallApplication = rollCallApplication;
_employeeApplication = employeeApplication;
_workshopId = authHelper.GetWorkshopId();
}
[HttpGet("current-day")]
@@ -22,4 +25,11 @@ public class RollCallController:ClientBaseController
var res = _rollCallApplication.GetWorkshopCurrentDayRollCalls(_workshopId, searchModel);
return res;
}
[HttpGet("employee-select-list")]
public async Task<ActionResult<List<EmployeeSelectListViewModel>>> GetEmployeeSelectList()
{
var res = await _employeeApplication.GetWorkingEmployeesSelectList(_workshopId);
return res;
}
}