154 lines
4.9 KiB
C#
154 lines
4.9 KiB
C#
using Dlhis.Basic.WorkGrids.Request;
|
|
using Dlhis.Basic.WorkGrids.Response;
|
|
using Dlhis.Basic.WorkGrids.Services;
|
|
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="requests"></param>
|
|
/// <returns></returns>
|
|
[HttpPost("save")]
|
|
[Transactional]
|
|
public async Task SaveWorkGridsAsync(List<WorkGridSaveRequest> requests)
|
|
{
|
|
await _workGridService.SaveAsync(requests);
|
|
}
|
|
|
|
/// <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")]
|
|
public async Task RemoveUsersFromWorkGridAsync(WorkGridUserRemoveRequest request)
|
|
{
|
|
await _workGridService.RemoveAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 保存网格人员排班
|
|
/// </summary>
|
|
/// <param name="request"></param>
|
|
[HttpPost("user/schedule/save")]
|
|
public async Task SaveScheduleAsync(WorkGridScheduleSaveRequest request)
|
|
{
|
|
await _workGridScheduleService.SaveAsync(request);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取人网格员排班列表
|
|
/// </summary>
|
|
/// <param name="workGridCode">网格code</param>
|
|
/// <param name="date"></param>
|
|
/// <returns></returns>
|
|
[HttpGet("user/schedule/list")]
|
|
public async Task<List<WorkGridScheduleResponse>> GetListAsync(Guid workGridCode, DateOnly date)
|
|
{
|
|
return await _workGridScheduleService.GetListAsync(workGridCode, date);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取网格人员排班详情
|
|
/// </summary>
|
|
/// <param name="workGridCode">网格</param>
|
|
/// <param name="start">开始日期</param>
|
|
/// <param name="end">结束日期</param>
|
|
/// <returns></returns>
|
|
[HttpGet("user/schedule/summary")]
|
|
public async Task<IEnumerable<WorkGridScheduleSummaryResponse>> GetListSummaryAsync([FromQuery] Guid workGridCode, [FromQuery] DateOnly start, [FromQuery] DateOnly end)
|
|
{
|
|
return await _workGridScheduleService.GetListSummaryAsync(workGridCode, start, end);
|
|
}
|
|
} |