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);
}
}
}