using Newtonsoft.Json; using Quartz; using Ropin.Inspection.Common.Helper; using Ropin.Inspection.Model.ViewModel; using Ropin.Inspection.Service.Interface; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Ropin.Inspection.Tasks.QuartzNet.Jobs { public class Job_FireFightingFacilitiesWeekRecord_Quartz : JobBase, IJob { private readonly ITispRecordItemService _tispRecordItemService; private readonly IReportService _reportService; public Job_FireFightingFacilitiesWeekRecord_Quartz(ITispRecordItemService tispRecordItemService, IReportService reportService, ITasksQzServices tasksQzServices) { _tispRecordItemService = tispRecordItemService; _tasksQzServices = tasksQzServices; _reportService = reportService; } public async Task Execute(IJobExecutionContext context) { var executeLog = await ExecuteJob(context, async () => await Run(context)); } public async Task Run(IJobExecutionContext context) { JobDataMap data = context.JobDetail.JobDataMap; string storeCode = data.GetString("JobParam"); DateTime beginDate; DateTime endDate; DateHelper.GetPeriod(DateHelper.Period.Week, out beginDate, out endDate); var l = await _tispRecordItemService.GetFireFightingFacilitiesAsync(beginDate, endDate, storeCode); ReportViewModel reportViewModel = new ReportViewModel { G_ID = Guid.NewGuid(), C_StoreCode = storeCode, I_Type = 3, C_GroupName = "消防设施检查", C_Name = "消防设施每周检查记录" + "(" + DateTime.Now.AddDays(1).ToString("yyyy/MM/dd HH:mm") + ")", C_Status = "1", D_CreateTime = DateTime.Parse(DateTime.Now.AddDays(1).ToString("yyyy/MM/dd HH:mm")), D_Start = beginDate, D_End = endDate, C_Data = JsonConvert.SerializeObject(l) }; await _reportService.CreateOneAsync(reportViewModel); } } }