GroupAndJobList

This commit is contained in:
SamSys
2026-01-04 19:13:46 +03:30
parent 1b284b51b9
commit be4bc2c900
7 changed files with 239 additions and 3 deletions

View File

@@ -21,6 +21,27 @@ public interface IClassificationGroupRepository : IRepository<long, Classificati
/// <returns></returns>
Task<List<ClassificationGroupAndJobModel>> GetGroupAndJobs(long schemeId);
/// <summary>
/// دریافت لیست گروه ها
/// </summary>
/// <param name="schemeId"></param>
/// <returns></returns>
Task<List<GetGroupAndJobSchemeListDto>> GetGroupList(long schemeId);
/// <summary>
/// دریافت لیست مشاغل برای مودال ایجاد و ویرایش
/// </summary>
/// <param name="groupId"></param>
/// <returns></returns>
Task<AddOrEditJobInGroupDto> GetCreateOrEditJobsData(long groupId);
/// <summary>
/// چک میکند که آی پرسنلی وجود دارد که این شغل به او نسبت داده شده
/// </summary>
/// <param name="jobId"></param>
/// <param name="groupId"></param>
/// <returns></returns>
Task<bool> CheckIfEmployeeHasThisJob(long jobId, long groupId);
/// <summary>
/// دریافت مشاغل گروه توسط آی دی گروه

View File

@@ -0,0 +1,36 @@
using System.Collections.Generic;
namespace CompanyManagment.App.Contracts.ClassificationScheme;
public class AddOrEditJobInGroupDto
{
/// <summary>
/// آی دی گروه
/// </summary>
public long GroupId { get; set; }
/// <summary>
/// شماره گروه نوع عددی
/// </summary>
public int GroupNoInt { get; set; }
public List<AddJobListDto> AddJobListDto { get; set; }
}
/// <summary>
/// لیست مشغال افزوده شده به گروه
/// </summary>
public class AddJobListDto
{
/// <summary>
/// آی دی شغل در مشاغل اداره کار
/// </summary>
public long JobId { get; set; }
/// <summary>
/// نام شغل
/// </summary>
public string JobName { get; set; }
}

View File

@@ -0,0 +1,22 @@
using System.Collections.Generic;
namespace CompanyManagment.App.Contracts.ClassificationScheme;
public class GetGroupAndJobSchemeListDto
{
/// <summary>
/// آی دی گروه
/// </summary>
public long GroupId { get; set; }
/// <summary>
/// شماره گروه نوع عددی
/// </summary>
public int GroupNoInt { get; set; }
/// <summary>
/// آیا شغلی به گروه اضافه شده
/// </summary>
public bool HasAnyJob { get; set; }
}

View File

@@ -185,6 +185,8 @@ public interface IClassificationSchemeApplication
Task<BaseYearDataViewModel> BaseYearComputeOneGroup(DateTime schemeStart, DateTime? schemeEnd,
DateTime contractStart, DateTime contractEnd, string groupNo, long employeeId, long workshopId);
#region ForApi
/// <summary>
/// چک کردن امکان حذف طرح
/// </summary>
@@ -199,4 +201,30 @@ public interface IClassificationSchemeApplication
/// <returns></returns>
Task<OperationResult> DeleteScheme(long id);
/// <summary>
/// تب گروه ها و مشاغل
/// لیست گروه ها
/// </summary>
/// <param name="schemeId"></param>
/// <returns></returns>
Task<List<GetGroupAndJobSchemeListDto>> GetGroupList(long schemeId);
/// <summary>
/// دریافت لیست مشاغل برای مودال ایجاد و ویرایش
/// </summary>
/// <param name="groupId"></param>
/// <returns></returns>
Task<AddOrEditJobInGroupDto> GetCreateOrEditJobsData(long groupId);
/// <summary>
/// چک میکند که آی پرسنلی وجود دارد که این شغل به او نسبت داده شده
/// </summary>
/// <param name="jobId"></param>
/// <param name="groupId"></param>
/// <returns></returns>
Task<OperationResult> CheckIfEmployeeHasThisJob(long jobId, long groupId);
#endregion
}

View File

@@ -132,11 +132,18 @@ public class ClassificationSchemeApplication : IClassificationSchemeApplication
return await _classificationGroupRepository.GetGroupAndJobs(schemeId);
}
public async Task<List<GetGroupAndJobSchemeListDto>> GetGroupList(long schemeId)
{
return await _classificationGroupRepository.GetGroupList(schemeId);
}
public async Task<List<EditClassificationGroupJob>> GetGroupJobs(long groupId)
{
return await _classificationGroupRepository.GetGroupJobs(groupId);
}
public async Task<bool> CheckEmployeeHasThisJob(long id, long groupId)
{
return await _classificationGroupRepository.CheckEmployeeHasThisJob(id, groupId);
@@ -607,4 +614,20 @@ public class ClassificationSchemeApplication : IClassificationSchemeApplication
return op.Failed("یافت نشد");
}
public async Task<AddOrEditJobInGroupDto> GetCreateOrEditJobsData(long groupId)
{
return await _classificationGroupRepository.GetCreateOrEditJobsData(groupId);
}
public async Task<OperationResult> CheckIfEmployeeHasThisJob(long jobId, long groupId)
{
var op = new OperationResult();
var checkExistAny = await _classificationGroupRepository.CheckIfEmployeeHasThisJob(jobId, groupId);
if (checkExistAny)
return op.Failed("این شغل قبلا به پرسنلی از این گروه داده شده و نمیتوانید آن را حذف کنید");
return op.Succcedded(-1,"حذف با موفقیت انجام شد");
}
}

View File

@@ -65,6 +65,8 @@ public class ClassificationGroupRepository : RepositoryBase<long, Classification
}).OrderBy(x=>x.GroupNoInt).ToListAsync();
}
/// <summary>
/// دریافت مشاغل گروه توسط آی دی گروه
/// </summary>
@@ -164,4 +166,63 @@ public class ClassificationGroupRepository : RepositoryBase<long, Classification
await _context.AddRangeAsync(groupList);
await _context.SaveChangesAsync();
}
#region ForApi
public async Task<List<GetGroupAndJobSchemeListDto>> GetGroupList(long schemeId)
{
return await _context.ClassificationGroups.Where(x => x.ClassificationSchemeId == schemeId)
.Include(x => x.ClassificationGroupJobs).Select(x => new GetGroupAndJobSchemeListDto
{
GroupId = x.id,
GroupNoInt = Convert.ToInt32(x.GroupNo),
HasAnyJob = x.ClassificationGroupJobs.Any()
}).OrderBy(x => x.GroupNoInt).ToListAsync();
}
public async Task<AddOrEditJobInGroupDto> GetCreateOrEditJobsData(long groupId)
{
var result = await _context.ClassificationGroups.Where(x => x.id == groupId)
.Include(x => x.ClassificationGroupJobs).FirstOrDefaultAsync();
if (result == null)
return new AddOrEditJobInGroupDto();
return new AddOrEditJobInGroupDto()
{
GroupId = result.id,
GroupNoInt = Convert.ToInt32(result.GroupNo),
AddJobListDto = result.ClassificationGroupJobs.Select(job => new AddJobListDto
{
JobId = job.JobId,
JobName = $"{job.JobName} - {job.JobCode}"
}).ToList(),
};
}
/// <summary>
/// چک میکند که آی پرسنلی وجود دارد که این شغل به او نسبت داده شده
/// </summary>
/// <param name="jobId"></param>
/// <param name="groupId"></param>
/// <returns></returns>
public async Task<bool> CheckIfEmployeeHasThisJob(long jobId, long groupId)
{
var result = await _context.ClassificationGroups.Where(x => x.id == groupId)
.Include(x => x.ClassificationGroupJobs).FirstOrDefaultAsync();
var job = result.ClassificationGroupJobs.FirstOrDefault(x => x.JobId == jobId);
if (job == null)
return false;
var id = job.id;
return await _context.ClassificationEmployees.AnyAsync(x =>
x.ClassificationGroupJobId == id && x.ClassificationGroupId == groupId);
}
#endregion
}

View File

@@ -21,6 +21,8 @@ public class ClassificationSchemeController : AdminBaseController
_authHelper = authHelper;
}
#region SchemeTab
/// <summary>
/// لیست طرح
/// </summary>
@@ -29,7 +31,7 @@ public class ClassificationSchemeController : AdminBaseController
[HttpGet]
public async Task<ActionResult<ClassificationSchemeListDto>> GetList(long workshopId)
{
var result =await _classificationSchemeApplication.GetClassificationSchemeList(workshopId);
var result = await _classificationSchemeApplication.GetClassificationSchemeList(workshopId);
return result;
}
@@ -66,7 +68,7 @@ public class ClassificationSchemeController : AdminBaseController
[HttpPut("Scheme")]
public async Task<ActionResult<OperationResult>> EditScheme([FromBody] EditClassificationSchemeDto command)
{
var result =await _classificationSchemeApplication.EditClassificationScheme(command);
var result = await _classificationSchemeApplication.EditClassificationScheme(command);
return result;
}
@@ -78,7 +80,7 @@ public class ClassificationSchemeController : AdminBaseController
[HttpGet("CheckToDeleteScheme")]
public async Task<CheckStatusToDeleteScheme> CheckToDeleteScheme(long id)
{
var result =await _classificationSchemeApplication.CheckToDeleteScheme(id);
var result = await _classificationSchemeApplication.CheckToDeleteScheme(id);
return result;
}
@@ -93,4 +95,47 @@ public class ClassificationSchemeController : AdminBaseController
var result = await _classificationSchemeApplication.DeleteScheme(id);
return result;
}
#endregion
#region GroupsTab
/// <summary>
/// دریافت لیست گروه ها
/// </summary>
/// <param name="schemeId"></param>
/// <returns></returns>
[HttpGet("GetGroupList")]
public async Task<List<GetGroupAndJobSchemeListDto>> GetGroupList(long schemeId)
{
var result = await _classificationSchemeApplication.GetGroupList(schemeId);
return result;
}
/// <summary>
/// دریافت لیست مشاغل گروه برای مودال افزودن و ویرایش
/// </summary>
/// <param name="groupId"></param>
/// <returns></returns>
[HttpGet("GetCreateOrEditJobsData")]
public async Task<AddOrEditJobInGroupDto> GetCreateOrEditJobsData(long groupId)
{
var result = await _classificationSchemeApplication.GetCreateOrEditJobsData(groupId);
return result;
}
/// <summary>
/// چک میکند که آیا امکان حذف شغل از گروه وجود دارد
/// </summary>
/// <param name="jobId"></param>
/// <param name="groupId"></param>
/// <returns></returns>
[HttpGet("CheckDeleteJobFromGroup")]
public async Task<ActionResult<OperationResult>> CheckDeleteJobFromGroup(long jobId, long groupId)
{
var result = await _classificationSchemeApplication.CheckIfEmployeeHasThisJob(jobId, groupId);
return result;
}
#endregion
}