using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;
using WaterCloud.Code;
using WaterCloud.Domain.ClassTask;
using WaterCloud.Domain.MaterialManage;
using WaterCloud.Service.ClassTask;
using WaterCloud.Service.MaterialManage;
using WaterCloud.Service.SystemSecurity;
namespace WaterCloud.Web.Controllers
{
///
/// 调度任务接口
///
[Route("api/[controller]/[action]")]
[ApiController]
[ServiceFilter(typeof(LoginFilterAttribute))]
public class TaskJobController : ControllerBase
{
//自动注入服务
public LogService _logService { get; set; }
public StorageService _storageService { get; set; }
public ControlJobService _service { get; set; }
#region 获取数据
///
/// 获取未完成任务列表
///
///
[HttpGet]
public async Task GetUnDoTaskJob()
{
var data = (await _service.GetList()).Where(a => a.F_JobState<2).OrderBy(a=>a.F_NeedTime).ToList();
return new AlwaysResult> { state = ResultType.success.ToString(), data = data, count = data.Count };
}
///
/// 获取任务信息
///
/// 任务编号
///
[HttpGet]
public async Task GetTaskJobForm(string jobCode)
{
var data = (await _service.GetTaskJobForm(jobCode));
return new AlwaysResult { state = ResultType.success.ToString(), data = data };
}
#endregion
#region 提交数据
///
/// 获取
///
/// 任务编号
///
[HttpPost]
public async Task DoTaskJob([Required,FromBody] string jobCode)
{
try
{
await _service.DoTaskJob(jobCode);
await _logService.WriteLog("操作成功", "调度任务接口-开始任务", "", Service.DbLogType.Submit);
return new AlwaysResult { state = ResultType.success.ToString() };
}
catch (Exception ex)
{
await _logService.WriteLog(ex.Message, "调度任务接口-开始任务", "", Service.DbLogType.Submit, true);
return new AlwaysResult { state = ResultType.error.ToString(), message = LogHelper.ExMsgFormat(ex.Message) };
}
}
#endregion
}
}