using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Aspose.Cells.Drawing; using JNPF.Common.Core.Manager; using JNPF.Common.Models.VisualDev; using JNPF.DependencyInjection; using JNPF.DynamicApiController; using JNPF.JsonSerialization; using JNPF.Systems.Interfaces.System; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using SqlSugar; using Tnb.BasicData.Entities; using Tnb.BasicData.Entities.Dto; using Tnb.BasicData.Entities.Dto.BasCalendar; using Tnb.BasicData.Interfaces; namespace Tnb.BasicData { /// /// 工作日管理 /// [ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 1102)] [Route("api/[area]/[controller]/[action]")] public class BasCalendarService: IBasCalendarService, IDynamicApiController, ITransient { private readonly ISqlSugarRepository _repository; private readonly IUserManager _userManager; public BasCalendarService(ISqlSugarRepository repository, IUserManager userManager) { _repository = repository; _userManager = userManager; } /// /// 保存工作日历 /// /// /// [HttpPost] public async Task SaveData(CalendarInput CalendarInput) { var db = _repository.AsSugarClient(); await db.Deleteable(p=>p.datetext== CalendarInput.datetext).ExecuteCommandAsync(); BasCalendar BasCalendar = new BasCalendar(); BasCalendar.datetext = CalendarInput.datetext; BasCalendar.datetype = CalendarInput.datetype; BasCalendar.workhour = CalendarInput.workhour; BasCalendar.worktype = CalendarInput.worktype; BasCalendar.create_id = _userManager.UserId; BasCalendar.create_time = DateTime.Now; await db.Insertable(BasCalendar).ExecuteCommandAsync(); } /// /// 获取工作日历 /// /// [HttpPost] public async Task GetWorkData(CalendarInput CalendarInput) { var db = _repository.AsSugarClient(); var lists = await db.Queryable().Where(p=>p.worktype== CalendarInput.worktype).ToListAsync(); List CalendarOuts = new List(); foreach (var list in lists) { CalendarOut CalendarOut = new CalendarOut(); CalendarOut.datetext = list.datetext; CalendarOut.datetype = list.datetype; CalendarOut.workhour = JSON.Deserialize>(list.workhour); CalendarOut.worktype = list.worktype; CalendarOuts.Add(CalendarOut); } return CalendarOuts; } /// /// 批量保存工作日历 /// /// /// public async Task SaveBatchData(CalendarBatchInput CalendarBatchInput) { var db = _repository.AsSugarClient(); DateTime start = DateTime.Parse(CalendarBatchInput.startday!); DateTime end = DateTime.Parse(CalendarBatchInput.endday!); List BasCalendars = new List(); for (DateTime date = start; date <= end; date.AddDays(1)) { if (CalendarBatchInput.weekday!.Contains((int)date.DayOfWeek)) { BasCalendar BasCalendar = new BasCalendar(); BasCalendar.datetext = date.ToString("yyyy-MM-dd"); BasCalendar.datetype = CalendarBatchInput.datetype; BasCalendar.workhour = CalendarBatchInput.workhour; BasCalendar.worktype = CalendarBatchInput.worktype; BasCalendar.create_id = _userManager.UserId; BasCalendar.create_time = DateTime.Now; BasCalendars.Add(BasCalendar); } } await db.Deleteable(p => BasCalendars.Select(p => p.datetext).ToList().Contains(p.datetext)).ExecuteCommandAsync(); await db.Insertable(BasCalendars).ExecuteCommandAsync(); } } }