123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- using DevExpress.Utils.Extensions;
- using System;
- using System.Collections.Generic;
- using System.Configuration;
- using System.IO;
- using System.Linq;
- using System.Web.Http;
- using XdCxRhDW.Dto;
- using XdCxRhDW.TaskServer.Service;
- using XdCxRhDW.TaskServer.Task;
- using XdCxRhDW.WebApi;
- namespace XdCxRhDW.TaskServer.Controllers
- {
- /// <summary>
- ///离线任务处理接口
- /// </summary>
- public class HistoryTaskProcessingController : BaseController
- {
- /*******************
- * !!!不要在Controller中放业务逻辑的全局变量
- * !!!不要在Controller写太复杂的业务逻辑
- * Controller主要就是调用Service层的东西。Service层执行业务逻辑和调用Repository层操作数据库
- * ********************/
- private readonly HistoryTaskService _service;
- public HistoryTaskProcessingController(HistoryTaskService service)
- {
- _service = service;
- }
- /// <summary>
- /// 执行离线任务
- /// </summary>
- /// <param name="dto">离线任务信息</param>
- /// <returns></returns>
- [HttpPost]
- public AjaxResult Run(HistoryTaskProcessingDto dto)
- {
- try
- {
- _service.allTask.RemoveAll(a => a.IsRuning == false);
- 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);
- _service.allTask.Add(x2D1);
- }
- else
- {
- return Error($"历史任务不支持定位模式{dto.PosType.GetEnumDisplayName()}");
- }
- return Success();
- }
- catch (Exception ex)
- {
- Serilog.Log.Error(ex, "历史任务处理出错!");
- return Error("历史任务处理出错");
- }
- }
- /// <summary>
- /// 历史任务停止
- /// </summary>
- /// <param name="dto"></param>
- /// <returns></returns>
- [HttpPost]
- public AjaxResult Stop(HistoryTaskStopDto dto)
- {
- try
- {
- LogHelper.Info($"接收停止历史任务编号:{dto.ID}");
- var historys = _service.allTask.Where(t => t.TaskDto.ID == dto.ID);
- foreach (var item in historys)
- {
- item.Stop();
- }
- _service.allTask.Remove(t => t.TaskDto.ID == dto.ID);
- return Success();
- }
- catch (Exception ex)
- {
- Serilog.Log.Error(ex, "停止历史任务处理出错!");
- return Error("停止历史任务处理出错");
- }
- }
- }
- }
|