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("停止历史任务处理出错"); } } } }