GroupAndJobList
This commit is contained in:
@@ -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>
|
||||
/// دریافت مشاغل گروه توسط آی دی گروه
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
@@ -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; }
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
}
|
||||
@@ -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,"حذف با موفقیت انجام شد");
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user