new metod HasAnyEmployeeWithoutGroup

This commit is contained in:
SamSys
2025-01-26 18:44:39 +03:30
parent e36848898a
commit 3c65140f52
7 changed files with 84 additions and 30 deletions

View File

@@ -23,4 +23,6 @@ public interface ICustomizeWorkshopGroupSettingsRepository : IRepository<long, C
void Remove(long groupId);
CustomizeWorkshopGroupSettingsViewModel GetEmployeesGroupSettingsByEmployeeId(long employeeId, long workshopId);
bool HasAnyEmployeeWithoutGroup(long workshopId);
}

View File

@@ -86,4 +86,7 @@ public interface ICustomizeWorkshopSettingsApplication
List<ChangedGroupedViewModel> GetShiftChangesGroupAndEmployees(long customizeWorkshopSettingsId);
List<CustomizeWorkshopEmployeeSettingsViewModel> GetEmployeeSettingsByWorkshopId(long workshopId);
CustomizeWorkshopGroupSettingsViewModel GetEmployeesGroupSettingsByEmployeeId(long employeeId, long workshopId);
bool HasAnyEmployeeWithoutGroup(long workshopId);
}

View File

@@ -1488,6 +1488,11 @@ public class CustomizeWorkshopSettingsApplication(ICustomizeWorkshopSettingsRepo
return _customizeWorkshopGroupSettingsRepository.GetEmployeesGroupSettingsByEmployeeId(employeeId, workshopId);
}
public bool HasAnyEmployeeWithoutGroup(long workshopId)
{
return _customizeWorkshopGroupSettingsRepository.HasAnyEmployeeWithoutGroup(workshopId);
}
private OperationResult CreateGeneralGroup(CustomizeWorkshopSettings entity)
{
var op = new OperationResult();

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.JavaScript;
using _0_Framework.Application;
using _0_Framework.InfraStructure;
using Company.Domain.CustomizeWorkshopGroupSettingsAgg;
@@ -73,29 +74,76 @@ public class CustomizeWorkshopGroupSettingsRepository(CompanyContext companyCont
public List<EmployeeViewModel> GetEmployeesWithoutGroupByWorkshopId(long workshopId)
{
var workshopSettings = _companyContext.CustomizeWorkshopSettings.Where(x=>x.WorkshopId==workshopId);
//var workshopSettings = _companyContext.CustomizeWorkshopSettings.Where(x=>x.WorkshopId==workshopId);
if (workshopSettings == null)
return new();
//if (workshopSettings == null)
// return new();
var existsEmployees = _companyContext.CustomizeWorkshopEmployeeSettings
.AsSplitQuery().Include(x => x.CustomizeWorkshopGroupSettings)
.Where(x => x.WorkshopId == workshopId && !x.CustomizeWorkshopGroupSettings.MainGroup)
.Select(x => x.EmployeeId).ToList();
var dateNow = DateTime.Now.Date;
var rollCallEmployees = _rollCallEmployeeRepository.GetActivePersonnelByWorkshopId(workshopId);
//var existsEmployees = _companyContext.CustomizeWorkshopEmployeeSettings
// .AsSplitQuery().Include(x => x.CustomizeWorkshopGroupSettings)
// .Where(x => x.WorkshopId == workshopId && !x.CustomizeWorkshopGroupSettings.MainGroup)
// .Select(x => x.EmployeeId).ToList();
var employees = rollCallEmployees
.Where(x => !existsEmployees.Contains(x.EmployeeId))
.Select(x => new EmployeeViewModel()
{
EmployeeFullName = x.EmployeeFullName,
Id = x.EmployeeId
}).ToList();
//var rollCallEmployees = _rollCallEmployeeRepository.GetActivePersonnelByWorkshopId(workshopId);
return employees;
//var employees = rollCallEmployees
// .Where(x => !existsEmployees.Contains(x.EmployeeId))
// .Select(x => new EmployeeViewModel()
// {
// EmployeeFullName = x.EmployeeFullName,
// Id = x.EmployeeId
// }).ToList();
var employees = _companyContext.RollCallEmployees
.Include(x =>
x.EmployeesStatus)
.Where(
x =>
x.WorkshopId == workshopId &&
x.EmployeesStatus.Any(y => y.StartDate.Date <= dateNow && y.EndDate.Date > dateNow) &&
x.HasUploadedImage == "true")
.GroupJoin(_companyContext.CustomizeWorkshopEmployeeSettings
.AsSplitQuery()
.Include(x => x.CustomizeWorkshopGroupSettings)
.Where(x => !x.CustomizeWorkshopGroupSettings.MainGroup && x.WorkshopId == workshopId), rollCallEmployee => rollCallEmployee.EmployeeId,
cws => cws.EmployeeId,
(rollCallEmployee, cws) => new { rollCallEmployee, cws })
.SelectMany(x => x.cws.DefaultIfEmpty(), (x, cws) => new { x.rollCallEmployee, cws })
.Where(x => x.cws == null).Select(x=> new EmployeeViewModel()
{
EmployeeFullName = x.rollCallEmployee.EmployeeFullName,
Id = x.rollCallEmployee.EmployeeId
});
return employees.ToList();
}
public bool HasAnyEmployeeWithoutGroup(long workshopId)
{
var dateNow = DateTime.Now.Date;
var rollCallEmployeesWithoutCWS = _companyContext.RollCallEmployees
.Include(x =>
x.EmployeesStatus)
.Where(
x =>
x.WorkshopId == workshopId &&
x.EmployeesStatus.Any(y => y.StartDate.Date <= dateNow && y.EndDate.Date > dateNow) &&
x.HasUploadedImage == "true")
.GroupJoin(_companyContext.CustomizeWorkshopEmployeeSettings
.AsSplitQuery()
.Include(x => x.CustomizeWorkshopGroupSettings)
.Where(x => !x.CustomizeWorkshopGroupSettings.MainGroup && x.WorkshopId == workshopId), rollCallEmployee => rollCallEmployee.EmployeeId,
cws => cws.EmployeeId,
(rollCallEmployee, cws) => new { rollCallEmployee, cws })
.SelectMany(x => x.cws.DefaultIfEmpty(), (x, cws) => new { x.rollCallEmployee, cws })
.Any(x => x.cws == null);
return rollCallEmployeesWithoutCWS;
}
public CustomizeWorkshopGroupSettings GetWithEmployees(long groupId)
{
return _companyContext.CustomizeWorkshopGroupSettings.AsSplitQuery().Include(x => x.CustomizeWorkshopEmployeeSettingsCollection)

View File

@@ -83,8 +83,8 @@ namespace ServiceHost.Areas.Client.Pages.Company.RollCall
//if (isWorkshopIrregular == false)
// return true;
var employeesWithoutGroup = _customizeWorkshopSettingsApplication.GetEmployeesWithoutGroupByWorkshopId(workshopId);
if (employeesWithoutGroup.Any())
var employeesWithoutGroup = _customizeWorkshopSettingsApplication.HasAnyEmployeeWithoutGroup(workshopId);
if (employeesWithoutGroup)
return false;
return true;
}

View File

@@ -49,13 +49,9 @@ namespace ServiceHost.Areas.Client.Pages.Company.RollCall
public bool IrregularWorkshopHaveGroupedAllPersonnelValidation(long workshopId)
{
var isWorkshopIrregular = _customizeWorkshopSettingsApplication
.GetWorkshopSettingsDetails(workshopId).WorkshopShiftStatus == WorkshopShiftStatus.Irregular;
if (isWorkshopIrregular == false)
return true;
var employeesWithoutGroup= _customizeWorkshopSettingsApplication.GetEmployeesWithoutGroupByWorkshopId(workshopId);
if (employeesWithoutGroup.Any())
var employeesWithoutGroup= _customizeWorkshopSettingsApplication.HasAnyEmployeeWithoutGroup(workshopId);
if (employeesWithoutGroup)
return false;
return true;
}

View File

@@ -48,13 +48,13 @@ namespace ServiceHost.Areas.Client.Pages.Company.RollCall
}
public bool IrregularWorkshopHaveGroupedAllPersonnelValidation(long workshopId)
{
var isWorkshopIrregular = _customizeWorkshopSettingsApplication
.GetWorkshopSettingsDetails(workshopId).WorkshopShiftStatus == WorkshopShiftStatus.Irregular;
//var isWorkshopIrregular = _customizeWorkshopSettingsApplication
// .GetWorkshopSettingsDetails(workshopId).WorkshopShiftStatus == WorkshopShiftStatus.Irregular;
if (isWorkshopIrregular == false)
return true;
var employeesWithoutGroup = _customizeWorkshopSettingsApplication.GetEmployeesWithoutGroupByWorkshopId(workshopId);
if (employeesWithoutGroup.Any())
//if (isWorkshopIrregular == false)
// return true;
var employeesWithoutGroup = _customizeWorkshopSettingsApplication.HasAnyEmployeeWithoutGroup(workshopId);
if (employeesWithoutGroup)
return false;
return true;
}