233 lines
7.5 KiB
C#
233 lines
7.5 KiB
C#
using Dlhis.Basic.WorkGrids.Request;
|
|
using Dlhis.Basic.WorkGrids.Response;
|
|
using Dlhis.Basic.WorkGrids.Services;
|
|
using Dlhis.Entity.Basic.Enums;
|
|
using Kurisu.AspNetCore.CustomClass;
|
|
using Kurisu.AspNetCore.DataAccess.Dto;
|
|
using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace Dlhis.Basic.WorkGrids.Controllers;
|
|
|
|
/// <summary>
|
|
/// 工作网格
|
|
/// </summary>
|
|
[Authorize]
|
|
[Route("api/[controller]")]
|
|
[ApiController]
|
|
public class WorkGridsController : ControllerBase
|
|
{
|
|
private readonly IWorkGridService _workGridService;
|
|
private readonly IWorkGridTimePeriodService _workGridTimePeriodService;
|
|
private readonly IWorkGridScheduleService _workGridScheduleService;
|
|
|
|
public WorkGridsController(IWorkGridService workGridService,
|
|
IWorkGridTimePeriodService workGridTimePeriodService,
|
|
IWorkGridScheduleService workGridScheduleService)
|
|
{
|
|
_workGridService = workGridService;
|
|
_workGridTimePeriodService = workGridTimePeriodService;
|
|
_workGridScheduleService = workGridScheduleService;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 人员查询选择
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("gainfo-selections")]
|
|
public async Task<Pagination<WorkGridGainfoPageResponse>> GetPageAsync([FromQuery] WorkGridGainfoPageRequest request)
|
|
{
|
|
return await _workGridService.GetUserSelectionPageAsync(request);
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 保存
|
|
/// </summary>
|
|
/// <param name="requests"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("save")]
|
|
[Transactional]
|
|
public async Task SaveWorkGridsAsync(List<WorkGridSaveRequest> requests)
|
|
{
|
|
await _workGridService.SaveAsync(requests);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 解散网格
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
[HttpPost("dismiss")]
|
|
public async Task DismissAsync(WorkGridDismissRequest request)
|
|
{
|
|
await _workGridService.DismissAsync(request.WorkGridCode);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 网格分页
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("page")]
|
|
public async Task<Pagination<WorkGridPageResponse>> GetWorkGridPageAsync([FromQuery] WorkGridPageRequest request)
|
|
{
|
|
return await _workGridService.GetPageAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 修改网格管理者
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[HttpPost("leader/change")]
|
|
public async Task ChangeWorkGridLeaderAsync(WorkGridChangeRequest request)
|
|
{
|
|
await _workGridService.ChangeAsync(request.From, request.To);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取我的网格信息
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("info")]
|
|
public async Task<WorkGridUserPageResponse> GetMyWorkGridAsync([FromQuery] WorkGridPageRequest request)
|
|
{
|
|
return await _workGridService.GetMyWorkGridAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 保存网格工作时间
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("timePeriod/save")]
|
|
public async Task SaveWorkGridTimePeriodAsync(WorkGridTimePeriodSaveRequest request)
|
|
{
|
|
await _workGridTimePeriodService.SaveAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// /获取网格工作时间分页
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("timePeriod/page")]
|
|
public async Task<Pagination<WorkGridTimePeriodPageResponse>> GetWorkGridTimePeriodPageAsync([FromQuery] WorkGridTimePeriodPageRequest request)
|
|
{
|
|
return await _workGridTimePeriodService.GetPageAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 分配人员到网格中
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("user/assign")]
|
|
public async Task AssignUsersToWorkGridAsync(WorkGridUserAssignRequest request)
|
|
{
|
|
await _workGridService.AssignAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 移除网格的人员
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("user/remove")]
|
|
[Transactional]
|
|
public async Task RemoveUsersFromWorkGridAsync(WorkGridUserRemoveRequest request)
|
|
{
|
|
await _workGridService.RemoveAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 保存网格人员排班
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
[HttpPost("user/schedule/save")]
|
|
[Transactional]
|
|
public async Task SaveScheduleAsync(WorkGridScheduleSaveRequest request)
|
|
{
|
|
await _workGridScheduleService.SaveAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 移除网格人员排班
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
[HttpPost("user/schedule/remove")]
|
|
[Transactional]
|
|
public async Task RemoveAsyncScheduleAsync(WorkGridScheduleSaveRequest request)
|
|
{
|
|
await _workGridScheduleService.RemoveAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取网格排班列表
|
|
/// </summary>
|
|
/// <param name="workGridCode">网格code</param>
|
|
/// <param name="date"></param>
|
|
/// <param name="periodType"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("user/schedule/list")]
|
|
public async Task<List<WorkGridScheduleResponse>> GetListAsync([FromQuery] Guid workGridCode, [FromQuery] DateTime date, [FromQuery] WorkGridTimePeriodEnumType? periodType)
|
|
{
|
|
return await _workGridScheduleService.GetListAsync(workGridCode, new DateOnly(date.Year, date.Month, date.Day), periodType);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取网格人员排班详情
|
|
/// </summary>
|
|
/// <param name="workGridCode">网格</param>
|
|
/// <param name="datePeriod"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("user/schedule/summary")]
|
|
public async Task<List<WorkGridScheduleSummaryResponse>> GetListSummaryAsync([FromQuery] Guid workGridCode, [FromQuery] DateTimePeriod datePeriod)
|
|
{
|
|
return await _workGridScheduleService.GetListSummaryAsync(workGridCode, datePeriod);
|
|
}
|
|
|
|
[HttpPost("user/schedule/cancel")]
|
|
[Transactional]
|
|
public async Task ManuallyCancelAsync(WorkGridScheduleCancelRequest request)
|
|
{
|
|
await _workGridScheduleService.ManuallyCancelAsync(request.Id, request.Reason);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取网格人员考勤记录分页
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("user/attendance/page")]
|
|
[IgnoreTenant]
|
|
public async Task<Pagination<WorkGridScheduleAttendancePageResponse>> GetAttendancePageAsync([FromQuery] WorkGridScheduleAttendancePageRequest request)
|
|
{
|
|
return await _workGridScheduleService.GetAttendancePageAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取网格人员考勤记录分页(所有)
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("user/attendance/page-all")]
|
|
public async Task<Pagination<WorkGridScheduleAttendancePageResponse>> GetAllAttendancePageAsync([FromQuery] WorkGridScheduleAttendancePageRequest request)
|
|
{
|
|
return await _workGridScheduleService.GetAllAttendancePageAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 网格人员考勤记录补传
|
|
/// </summary>
|
|
/// <param name="logIds"></param>
|
|
[HttpPost("user/attendance/upload")]
|
|
[Transactional]
|
|
[IgnoreTenant]
|
|
public async Task ManuallyUploadAsync(List<long> logIds)
|
|
{
|
|
await _workGridScheduleService.ManuallyUploadAsync(logIds);
|
|
}
|
|
} |