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; /// /// 工作网格 /// [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; } /// /// 人员查询选择 /// /// /// [HttpGet("gainfo-selections")] public async Task> GetPageAsync([FromQuery] WorkGridGainfoPageRequest request) { return await _workGridService.GetUserSelectionPageAsync(request); } /// /// 保存 /// /// /// [HttpPost("save")] [Transactional] public async Task SaveWorkGridsAsync(List requests) { await _workGridService.SaveAsync(requests); } /// /// 解散网格 /// /// [HttpPost("dismiss")] public async Task DismissAsync(WorkGridDismissRequest request) { await _workGridService.DismissAsync(request.WorkGridCode); } /// /// 网格分页 /// /// /// [HttpGet("page")] public async Task> GetWorkGridPageAsync([FromQuery] WorkGridPageRequest request) { return await _workGridService.GetPageAsync(request); } /// /// 修改网格管理者 /// /// [HttpPost("leader/change")] public async Task ChangeWorkGridLeaderAsync(WorkGridChangeRequest request) { await _workGridService.ChangeAsync(request.From, request.To); } /// /// 获取我的网格信息 /// /// /// [HttpGet("info")] public async Task GetMyWorkGridAsync([FromQuery] WorkGridPageRequest request) { return await _workGridService.GetMyWorkGridAsync(request); } /// /// 保存网格工作时间 /// /// /// [HttpPost("timePeriod/save")] public async Task SaveWorkGridTimePeriodAsync(WorkGridTimePeriodSaveRequest request) { await _workGridTimePeriodService.SaveAsync(request); } /// /// /获取网格工作时间分页 /// /// /// [HttpGet("timePeriod/page")] public async Task> GetWorkGridTimePeriodPageAsync([FromQuery] WorkGridTimePeriodPageRequest request) { return await _workGridTimePeriodService.GetPageAsync(request); } /// /// 分配人员到网格中 /// /// /// [HttpPost("user/assign")] public async Task AssignUsersToWorkGridAsync(WorkGridUserAssignRequest request) { await _workGridService.AssignAsync(request); } /// /// 移除网格的人员 /// /// /// [HttpPost("user/remove")] [Transactional] public async Task RemoveUsersFromWorkGridAsync(WorkGridUserRemoveRequest request) { await _workGridService.RemoveAsync(request); } /// /// 保存网格人员排班 /// /// [HttpPost("user/schedule/save")] [Transactional] public async Task SaveScheduleAsync(WorkGridScheduleSaveRequest request) { await _workGridScheduleService.SaveAsync(request); } /// /// 移除网格人员排班 /// /// [HttpPost("user/schedule/remove")] [Transactional] public async Task RemoveAsyncScheduleAsync(WorkGridScheduleSaveRequest request) { await _workGridScheduleService.RemoveAsync(request); } /// /// 获取网格排班列表 /// /// 网格code /// /// /// [HttpGet("user/schedule/list")] public async Task> GetListAsync([FromQuery] Guid workGridCode, [FromQuery] DateTime date, [FromQuery] WorkGridTimePeriodEnumType? periodType) { return await _workGridScheduleService.GetListAsync(workGridCode, new DateOnly(date.Year, date.Month, date.Day), periodType); } /// /// 获取网格人员排班详情 /// /// 网格 /// /// [HttpGet("user/schedule/summary")] public async Task> 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); } /// /// 获取网格人员考勤记录分页 /// /// /// [HttpGet("user/attendance/page")] [IgnoreTenant] public async Task> GetAttendancePageAsync([FromQuery] WorkGridScheduleAttendancePageRequest request) { return await _workGridScheduleService.GetAttendancePageAsync(request); } /// /// 获取网格人员考勤记录分页(所有) /// /// /// [HttpGet("user/attendance/page-all")] public async Task> GetAllAttendancePageAsync([FromQuery] WorkGridScheduleAttendancePageRequest request) { return await _workGridScheduleService.GetAllAttendancePageAsync(request); } /// /// 网格人员考勤记录补传 /// /// [HttpPost("user/attendance/upload")] [Transactional] [IgnoreTenant] public async Task ManuallyUploadAsync(List logIds) { await _workGridScheduleService.ManuallyUploadAsync(logIds); } }