using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Web.Http;
using XdCxRhDW.Dto;
using XdCxRhDW.TaskServer.Service;
using XdCxRhDW.TaskServer.Task;
using XdCxRhDW.WebApi;
namespace XdCxRhDW.TaskServer.Controllers
{
///
///离线任务处理接口
///
public class HistoryTaskProcessingController : BaseController
{
/*******************
* !!!不要在Controller中放业务逻辑的全局变量
* !!!不要在Controller写太复杂的业务逻辑
* Controller主要就是调用Service层的东西。Service层执行业务逻辑和调用Repository层操作数据库
* ********************/
public List allTask = new List();
private readonly TestService _testService;
public HistoryTaskProcessingController(TestService testService)
{
_testService = testService;
}
///
/// 执行离线任务
///
/// 离线任务信息
///
[HttpPost]
public AjaxResult Run(HistoryTaskProcessingDto dto)
{
try
{
//方式1:从构造函数注入
var service1 = _testService;
//方式2:从容器中主动获取
var service2 = AutofacUtil.GetService();
//选一种简单的方式就行
LogHelper.Info($"接收到历史任务编号:{dto.ID}");
dto.StartTime = new DateTime(2024, 03, 24, 12, 00, 00);
dto.DateDirFormat = "yyyyMMddHH";
dto.CapDir = @"D:\\data";
dto.SigType = EnumSigTypeDto.SX;
dto.PosType = EnumPosTypeDto.X2D1;
dto.TaskCheckType = EnumTaskCheckTypeDto.DAMA;
if (!Directory.Exists(dto.CapDir))
{
LogHelper.Error($"采集路径:{dto.CapDir}不存在");
return Error($"采集路径:{dto.CapDir}不存在");
}
if (dto.PosType == EnumPosTypeDto.X2D1)
{
X2D1Task x2D1 = new X2D1Task();
x2D1.Start(dto);
allTask.Add(x2D1);
}
else
{
return Error($"历史任务不支持定位模式{dto.PosType.GetEnumDisplayName()}");
}
return Success();
}
catch (Exception ex)
{
Serilog.Log.Error(ex, "历史任务处理出错!");
return Error("历史任务处理出错");
}
}
///
///
///
///
///
[HttpPost]
public AjaxResult Stop(int TaskId)
{
try
{
//方式1:从构造函数注入
var service1 = _testService;
//方式2:从容器中主动获取
var service2 = AutofacUtil.GetService();
//选一种简单的方式就行
LogHelper.Info($"接收停止历史任务编号:{TaskId}");
var history = allTask.Find(t => t.TaskDto.ID == TaskId);
if (history != null)
{
history.Stop();
allTask.Remove(history);
}
return Success();
}
catch (Exception ex)
{
Serilog.Log.Error(ex, "停止历史任务处理出错!");
return Error("停止历史任务处理出错");
}
}
}
}