add task schedule

This commit is contained in:
MahanCh
2025-04-07 19:44:22 +03:30
parent ad8896a12c
commit ecfae75010
38 changed files with 6011 additions and 564 deletions

View File

@@ -8,7 +8,7 @@ namespace AccountManagement.Domain.AssignAgg;
public class Assign : EntityBase
{
public Assign(long taskId, long assignerId, long assignedId, int assignerPositionValue, string assignedName, int assignedPositionValue, DateTime endTaskDate, bool firstTimeCreation = false)
public Assign(long taskId, long assignerId, long assignedId, int assignerPositionValue, string assignedName, int assignedPositionValue, DateTime endTaskDate, bool firstTimeCreation=false)
{
TaskId = taskId;
AssignerId = assignerId;
@@ -18,7 +18,7 @@ public class Assign : EntityBase
AssignedPositionValue = assignedPositionValue;
EndTaskDate = endTaskDate;
FirstTimeCreation = firstTimeCreation;
}
}
//آیدی شخص ارسال کننده
public long TaskId { get; private set; }
@@ -52,7 +52,9 @@ public class Assign : EntityBase
public string? DoneDescription { get; private set; }
public bool IsCanceledRequest { get; private set; }
public bool FirstTimeCreation { get; private set; }
public Tasks Task { get; set; }
public List<TaskMessage> TaskMessageList { get; set; }
@@ -71,9 +73,9 @@ public class Assign : EntityBase
{
TimeRequest = false;
AcceptedTimeRequest++;
EndTaskDate = RequestDate.Value;
EndTaskDate = RequestDate < DateTime.Today ? DateTime.Today : RequestDate.Value;
}
}
public void RejectTimeRequest()
{
TimeRequest = false;

View File

@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using _0_Framework.Application;
using _0_Framework.Domain;
using AccountManagement.Application.Contracts.Task;
@@ -88,11 +89,22 @@ public interface ITaskRepository:IRepository<long,Tasks>
/// <returns></returns>
List<TaskViewModel> GetTasksHaveTicket(TaskSearchModel searchModel);
/// <summary>
/// لیست تسک های دوره ای ایجاد شده توسط کاربر
/// </summary>
/// <param name="searchModel"></param>
/// <returns></returns>
List<TaskViewModel> GetTaskScheduleList(TaskSearchModel searchModel);
/// <summary>
/// تعداد تسک های درخواستی. بدون تیکت
/// </summary>
/// <returns></returns>
int GetRequestedTasksCount();
Task<int> GetRequestedTasksCount();
/// <summary>
/// گرفتن جزئیات درخواست وظیفه
@@ -114,39 +126,38 @@ public interface ITaskRepository:IRepository<long,Tasks>
/// <returns></returns>
bool HasOverdueTasks(long userId);
/// <summary>
///مجوع تعداد تسک های عقب افتاده و درخواستی
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
int RequestedAndOverdueTasksCount(long userId);
/// <summary>
/// مجوع تعداد تسک های عقب افتاده و درخواستی
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
Task<int> RequestedAndOverdueTasksCount(long userId);
/// <summary>
/// تعداد تسک های دارای تیکت
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
int TasksHaveTicketCounts(long userId);
Task<int> TasksHaveTicketCounts(long userId);
/// <summary>
/// تعداد درخواست های تسک های دارا تیکت
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
int TasksHaveTicketRequestsCount(long userId);
Task<int> TasksHaveTicketRequestsCount(long userId);
/// <summary>
///تعداد تسک های شخصی و دریافتی برای امروز و یا عقب افتاده
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
int OverdueTasksCount(long userId);
/// <summary>
/// تعداد تسک های شخصی و دریافتی برای امروز و یا عقب افتاده
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
Task<int> OverdueTasksCount(long userId);
// گرفتن پیام های مربوط به هر تسک
List<Tasks> GetTasksByTaskScheduleId(long taskScheduleId);
//OperationResult MoveDataFRomTaskToAssign();
void RemoveRange(IEnumerable<Tasks> tasks);
}

View File

@@ -1,8 +1,11 @@
using _0_Framework.Domain;
using System.Threading.Tasks;
using _0_Framework.Domain;
using AccountManagement.Application.Contracts.TaskSchedule;
namespace AccountManagement.Domain.TaskScheduleAgg;
public interface ITaskScheduleRepository:IRepository<long,TaskSchedule>
public interface ITaskScheduleRepository : IRepository<long, TaskSchedule>
{
Task<TaskScheduleDetailsViewModel> GetDetails(long id);
void Remove(TaskSchedule entity);
}

View File

@@ -1,29 +1,38 @@
using System;
using System.Collections.Generic;
using _0_Framework.Application;
using _0_Framework.Domain;
using AccountManagement.Application.Contracts.Task;
using AccountManagement.Domain.TaskAgg;
namespace AccountManagement.Domain.TaskScheduleAgg;
public class TaskSchedule:EntityBase
{
public TaskSchedule(string count, string type, string unitType, string unitNumber, DateTime lastEndTaskDate)
public TaskSchedule(string count, TaskScheduleType type, TaskScheduleUnitType unitType, string unitNumber, DateTime lastEndTaskDate)
{
Count = count;
Type = type;
UnitType = unitType;
UnitNumber = unitNumber;
LastEndTaskDate = lastEndTaskDate;
IsCanceled = IsActive.True;
}
public string Count { get; private set; }
public string Type { get; private set; }
public string UnitType { get; private set; }
public TaskScheduleType Type { get; private set; }
public TaskScheduleUnitType UnitType { get; private set; }
public string UnitNumber { get; private set; }
public DateTime LastEndTaskDate { get; private set; }
public IsActive IsCanceled { get; private set; }
public List<Tasks> TasksList { get; set; }
public void SetLastEndTaskDate(DateTime lastEndTaskDate)
{
LastEndTaskDate = lastEndTaskDate;
}
public void DeActive()
{
IsCanceled = IsActive.False;
}
}