566 lines
19 KiB
C#
566 lines
19 KiB
C#
|
|
using COMMON;
|
|||
|
|
using Microsoft.AspNetCore.Http;
|
|||
|
|
using Microsoft.AspNetCore.Mvc;
|
|||
|
|
using Models;
|
|||
|
|
using Models.Models.DEBUGGER_DB;
|
|||
|
|
using Models.Models.LOGDB;
|
|||
|
|
using Newtonsoft.Json;
|
|||
|
|
using Quartz;
|
|||
|
|
using SERVER;
|
|||
|
|
using SERVER.DataServer;
|
|||
|
|
using SERVER.LIB;
|
|||
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Diagnostics;
|
|||
|
|
using System.IO;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Threading;
|
|||
|
|
using System.Threading.Tasks;
|
|||
|
|
using TcpServer;
|
|||
|
|
using WebUI.LIB;
|
|||
|
|
using static Models.TCPDATA;
|
|||
|
|
|
|||
|
|
namespace WebUI.Controllers
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// api控制器
|
|||
|
|
/// </summary>
|
|||
|
|
public class ApiController : BaseController
|
|||
|
|
{
|
|||
|
|
private IScheduler _scheduler;
|
|||
|
|
|
|||
|
|
private readonly LOG_DBContext _logdb;
|
|||
|
|
private readonly HotelServiceContext _db;
|
|||
|
|
private readonly DEBUGGER_DB _DEBUGGER_DB;
|
|||
|
|
private readonly ISchedulerFactory _schedulerFactory;
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 注入定时器等服务
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="logdb"></param>
|
|||
|
|
/// <param name="schedulerFactory"></param>
|
|||
|
|
/// <param name="_DB"></param>
|
|||
|
|
/// <param name="db"></param>
|
|||
|
|
public ApiController(HotelServiceContext db, LOG_DBContext logdb, ISchedulerFactory schedulerFactory, DEBUGGER_DB _DB)
|
|||
|
|
{
|
|||
|
|
_db = db;
|
|||
|
|
_schedulerFactory = schedulerFactory;
|
|||
|
|
_logdb = logdb;
|
|||
|
|
_DEBUGGER_DB = _DB;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 下发固件、配置
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost]
|
|||
|
|
public IActionResult SendCmd(int type = 1,params string[] mac)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
foreach (var item in mac)
|
|||
|
|
{
|
|||
|
|
XC_Redis.Redis.Remove(item);
|
|||
|
|
}
|
|||
|
|
return Json(Send_Cmd.Send_File(type,mac));
|
|||
|
|
}
|
|||
|
|
catch (Exception EX)
|
|||
|
|
{
|
|||
|
|
LogHelp.Error(EX.ToString());
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 下发 固件、配置 进度条
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost]
|
|||
|
|
public IActionResult Send_Schedule(int type = 1, params string[] mac)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
Dictionary<string,string> macData = new Dictionary<string,string>();
|
|||
|
|
foreach (var item in mac)
|
|||
|
|
{
|
|||
|
|
var rd = XC_Redis.Redis.GetKey<double>(item);
|
|||
|
|
macData.Add(item, rd+"%");
|
|||
|
|
}
|
|||
|
|
return Json(macData);
|
|||
|
|
}
|
|||
|
|
catch (Exception EX)
|
|||
|
|
{
|
|||
|
|
LogHelp.Error(EX.ToString());
|
|||
|
|
return Content(EX.Message); ;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 酒店信息
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost]
|
|||
|
|
public IActionResult HOTELINFO()
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
IList<HotelDataItem> RESHotels = new List<HotelDataItem>();
|
|||
|
|
|
|||
|
|
foreach (var item in CacheData.TBL_HOTEL_BASIC_INFO.GroupBy(X=>X.HOTEL_OLD_GROUP))
|
|||
|
|
{
|
|||
|
|
var GROUP = CacheData.TBL_HOTEL_GROUP_INFO.FirstOrDefault(X=>X.HOTEL_GROUP_OLD_ID == item.First().HOTEL_OLD_GROUP);
|
|||
|
|
if (GROUP == null)
|
|||
|
|
{
|
|||
|
|
LogHelp.Error(item.First().HOTEL_OLD_GROUP + "酒店组信息为null~");
|
|||
|
|
continue;
|
|||
|
|
}
|
|||
|
|
RESHotels.Add(new HotelDataItem() {HotelGroupsName = GROUP.HOTEL_GROUP_NAME,HotelGroupsId = GROUP.HOTEL_GROUP_OLD_ID,Hotels = item.Select(X => new HotelsItem() { Auth = null, Code = X.PROJECT_NUMBER, HotelId = X.IDOLD, HotelName = X.HOTEL_NAME_CN }).ToList() });
|
|||
|
|
RESHotels.Add(new HotelDataItem() {HotelGroupsName = GROUP.HOTEL_GROUP_NAME,HotelGroupsId = GROUP.HOTEL_GROUP_OLD_ID,Hotels = item.Select(X => new HotelsItem() { Auth = null, Code = X.PROJECT_NUMBER, HotelId = X.IDOLD, HotelName = X.HOTEL_NAME_CN }).ToList() });
|
|||
|
|
}
|
|||
|
|
// var RES = Hotels.ToArray();
|
|||
|
|
//for(int i = 0; i < RES.Count();i++)
|
|||
|
|
//{
|
|||
|
|
// for (int J = 0; J < RES[i].Hotels.Count; J++)
|
|||
|
|
// {
|
|||
|
|
// RES[i].Hotels[J].Auth = null;
|
|||
|
|
// }
|
|||
|
|
//}
|
|||
|
|
return Json(RESHotels);
|
|||
|
|
}
|
|||
|
|
catch (Exception EX)
|
|||
|
|
{
|
|||
|
|
LogHelp.Error(EX.ToString());
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 房间信息
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="HotelId">酒店id</param>
|
|||
|
|
/// <param name="GroupId">酒店组id</param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost]
|
|||
|
|
public IActionResult ROOMINFO(int HotelId = 0,int GroupId = 0)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
// 这里是进行了权限判断 以及数据的简单校验
|
|||
|
|
//if ((HotelId <= 0 && GroupId<=0) || (HotelId > 0 && Hoteldata.FirstOrDefault(X=>X.HotelId == HotelId)==null ))
|
|||
|
|
// return Json(null);
|
|||
|
|
List<int> HotelDATA = HotelDATA = _db.TBL_HOTEL_BASIC_INFOS.Where(X => (GroupId ==0 || X.HOTEL_OLD_GROUP == GroupId) && (HotelId==0 || X.IDOLD == HotelId)).Select(X=>X.IDOLD).ToList();
|
|||
|
|
return Json(_db.TBL_ROOM_BASIC_INFOS.Where(x => HotelDATA.Contains(x.HOTEL_OLD_ID)).Select(x => new { text = x.ROOM_NUMBER, val = x.ROOM_OLD_ID,mac=x.MAC }));
|
|||
|
|
}
|
|||
|
|
catch (Exception EX)
|
|||
|
|
{
|
|||
|
|
LogHelp.Error(EX.ToString());
|
|||
|
|
return Json(null);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获取文件数据列表
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost]
|
|||
|
|
public IActionResult SelModelFile(int start = 0, int length = 15, int draw = 0, string type = "")
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
int count = 0;
|
|||
|
|
int count_ = 0;
|
|||
|
|
var data = ModelFile.GetFtp(out count, out count_, start, length, type);
|
|||
|
|
return Json(new
|
|||
|
|
{
|
|||
|
|
draw,
|
|||
|
|
recordsTotal = count,
|
|||
|
|
recordsFiltered = count_,
|
|||
|
|
data = data
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
LogHelp.Error(ex.ToString());
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 添加文件数据
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost]
|
|||
|
|
public IActionResult AddModelFile(List<IFormFile> files, int type = -1)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
return Json(ModelFile.AddModelFile(type, files, TOken, _db).Result);
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
LogHelp.Error(ex.ToString());
|
|||
|
|
return Json(false);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 删除文件数据
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost]
|
|||
|
|
public IActionResult DelModelFile(int id)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
return Json(ModelFile.DelModelFile(id, _db));
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
LogHelp.Error(ex.ToString());
|
|||
|
|
return Json(false);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 刷新token 同时也返回服务器服务状态
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost]
|
|||
|
|
public IActionResult Token()
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
Get();
|
|||
|
|
|
|||
|
|
BaseController.SXTOKEN(this, HttpContext);
|
|||
|
|
return Json(new ReturnData<int[]> { IsSuccess = true, Result = new int[] { XC_Redis.Redis.GetKey<int>("udpserver"), TestingServices.ISok("BLV RUCS") } });
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
LogHelp.Error(ex.ToString());
|
|||
|
|
return Json(new ReturnData<String> { IsSuccess = false, Result = ex.Message });
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 刷新udp log 数
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost]
|
|||
|
|
public IActionResult Getudplogcount()
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
return Json(new
|
|||
|
|
{
|
|||
|
|
udp = CacheData.UDPcount,
|
|||
|
|
// ruc 是没有直接跟房间绑定的 只能酒店房间 反推 ruc rcu数量 等于房间绑定的rcu 数量
|
|||
|
|
rcu = SelHotel == null ? 0 : _db.TBL_ROOM_BASIC_INFOS.Where(x => x.HOTEL_OLD_ID == SelHotel.HotelId && x.MAC.Length > 0).Count()
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
LogHelp.Error(ex.ToString());
|
|||
|
|
return Json(new
|
|||
|
|
{
|
|||
|
|
udp = 0,
|
|||
|
|
// ruc 是没有直接跟房间绑定的 只能酒店房间 反推 ruc
|
|||
|
|
rcu = 0
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获取rcu列表 分页
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost]
|
|||
|
|
public IActionResult GetRCU(int start,int draw, int length, int room_online_satatus, string roomnumber,int room_type)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
if (SelHotel != null)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
int COUNT, COUNT_ = 0;
|
|||
|
|
var macdata = RcuServer.SetRucServer(out COUNT, out COUNT_,SelHotel.HotelId, start, length,room_online_satatus, roomnumber, room_type, _db);
|
|||
|
|
return Json(new
|
|||
|
|
{
|
|||
|
|
draw,
|
|||
|
|
recordsTotal = COUNT,
|
|||
|
|
recordsFiltered = COUNT_,
|
|||
|
|
data = macdata
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
catch (Exception EX)
|
|||
|
|
{
|
|||
|
|
LogHelp.Error(EX.ToString());
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
/// <summary>
|
|||
|
|
/// 切换酒店
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost]
|
|||
|
|
public IActionResult Sel(int id)
|
|||
|
|
{
|
|||
|
|
HotelsItem hotels = Hoteldata.FirstOrDefault(x => x.HotelId == id);
|
|||
|
|
if (hotels != null)
|
|||
|
|
{
|
|||
|
|
Response.Cookies.Append("old_host_" + TOken, id.ToString());
|
|||
|
|
COMMON.XC_Redis.Redis.SetKey(TOken_rom + "_sel", hotels);
|
|||
|
|
}
|
|||
|
|
return Json(new ReturnData<string> { IsSuccess = hotels != null, Result = null });
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 退出登录
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpGet]
|
|||
|
|
public IActionResult signout()
|
|||
|
|
{
|
|||
|
|
Response.Cookies.Delete("CurrentUser");
|
|||
|
|
// 删除会话用户标识
|
|||
|
|
XC_Redis.Redis.Remove(TOken + Cookie.Substring(Cookie.Length - 8) + "_rom");
|
|||
|
|
// 删除会话用户选择的 酒店
|
|||
|
|
XC_Redis.Redis.Remove(TOken_rom + "_sel");
|
|||
|
|
// 删除 随机截取的token 下标数组
|
|||
|
|
XC_Redis.Redis.Remove(TOken_rom);
|
|||
|
|
if (ConfigEntity.Instance.IsMore == false)
|
|||
|
|
{
|
|||
|
|
XC_Redis.Redis.Remove(TOken);
|
|||
|
|
XC_Redis.Redis.Remove(TOken + "__hoteldata");
|
|||
|
|
}
|
|||
|
|
return RedirectToAction("Index", "Login");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// RUCS_CMD
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpGet]
|
|||
|
|
public IActionResult RUCS_CMD()
|
|||
|
|
{
|
|||
|
|
return Json(new { Send_RUCS_RCU_LIST = SendHelp.Send_RUCS_RCU_LIST().ToString() });
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获取酒店组视图
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost]
|
|||
|
|
public IActionResult GetGroup(int group = 0, string search = "")
|
|||
|
|
{
|
|||
|
|
for (int i = 0; i < Hotels.Count; i++)
|
|||
|
|
{
|
|||
|
|
if (Hotels[i].HotelGroupsId == group)
|
|||
|
|
{
|
|||
|
|
ViewData["HotelGroup"] = Hotels[i];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
ViewData["Hotel"] = SelHotel.HotelId;
|
|||
|
|
ViewData["search"] = string.IsNullOrEmpty(search) ? "" : search;
|
|||
|
|
return View(Hotels);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获取酒店视图 未用到
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns> 未用到 </returns>
|
|||
|
|
[HttpPost]
|
|||
|
|
public IActionResult GetHotels(int GroupId)
|
|||
|
|
{
|
|||
|
|
return View();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获取UDPINFO 通讯包数统计
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost]
|
|||
|
|
public IActionResult GetCHARTS(int[] TX, int[] RX, string startDate, string endDate)
|
|||
|
|
{
|
|||
|
|
ECHARTS res = CHARTSSERVER.GetCHARTS(_logdb, TX, RX, startDate, endDate);
|
|||
|
|
return Json(res);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获取UDPINFO 统计 通讯字节流量统计
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost]
|
|||
|
|
public IActionResult GetErrorSucess(int[] TX, int[] RX, string startDate, string endDate)
|
|||
|
|
{
|
|||
|
|
ECHARTS res = CHARTSSERVER.GetErrorSucess(_logdb, startDate, endDate);
|
|||
|
|
return Json(res);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获取UDPINFO 端口数据使用情况
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost]
|
|||
|
|
public IActionResult GetProt(string startDate, string endDate)
|
|||
|
|
{
|
|||
|
|
ECHARTS res = CHARTSSERVER.GetProt(_logdb, startDate, endDate);
|
|||
|
|
return Json(res);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获取UDPINFO 处理耗时
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost]
|
|||
|
|
public IActionResult GetPROCESSINGTIME(string startDate, string endDate)
|
|||
|
|
{
|
|||
|
|
ECHARTS res = CHARTSSERVER.GetPROCESSINGTIME(_logdb, startDate, endDate);
|
|||
|
|
return Json(res);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获取UDPINFO 处理耗时
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost]
|
|||
|
|
public IActionResult GetRevDelayDateTime(string startDate, string endDate)
|
|||
|
|
{
|
|||
|
|
ECHARTS res = CHARTSSERVER.GetRevDelayDateTime(_logdb, startDate, endDate);
|
|||
|
|
return Json(res);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获取UDPINFO 命令饼图 tx rx
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost]
|
|||
|
|
public IActionResult GetCMDpie(string startDate, string endDate, string type = "TX")
|
|||
|
|
{
|
|||
|
|
ECHARTS res = CHARTSSERVER.GetCMDpie_(_logdb, startDate, endDate, type);
|
|||
|
|
return Json(res);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 获取UDPINFO 重发饼图 tx rx
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost]
|
|||
|
|
public IActionResult GetRETRY_COUNT(string startDate, string endDate, string type = "TX")
|
|||
|
|
{
|
|||
|
|
ECHARTS res = CHARTSSERVER.GetRETRY_COUNT(_logdb, startDate, endDate, type);
|
|||
|
|
return Json(res);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 更改服务状态
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[HttpPost]
|
|||
|
|
public IActionResult Changerserver(int type)
|
|||
|
|
{
|
|||
|
|
return Json(TestingServices.ISok("BLV RUCS", type));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 同步数据
|
|||
|
|
/// </summary>
|
|||
|
|
public void Get()
|
|||
|
|
{
|
|||
|
|
if (Client.dateTime == string.Empty) { return; }
|
|||
|
|
lock (Client.dateTimelocks)
|
|||
|
|
{
|
|||
|
|
if (Client.dateTime == null)
|
|||
|
|
{
|
|||
|
|
Client.dateTime = "000000000";
|
|||
|
|
Thread thread = new Thread(async () =>
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
//1、通过调度工厂获得调度器
|
|||
|
|
_scheduler = await _schedulerFactory.GetScheduler();
|
|||
|
|
//2、开启调度器
|
|||
|
|
await _scheduler.Start();
|
|||
|
|
//3、创建一个触发器
|
|||
|
|
var trigger = TriggerBuilder.Create()
|
|||
|
|
.WithCronSchedule("0/3 * * * * ?")//间隔3秒 检测 tcp 是否在运行
|
|||
|
|
.Build();
|
|||
|
|
//3、创建一个触发器
|
|||
|
|
var trigger1 = TriggerBuilder.Create()
|
|||
|
|
.WithCronSchedule("0 00 00 * * ? *")// 每日 0 点触发 同步数据
|
|||
|
|
.Build();
|
|||
|
|
//3、创建一个触发器
|
|||
|
|
var trigger2 = TriggerBuilder.Create()
|
|||
|
|
.WithCronSchedule("4 20 * * * ?")//每个小时 10min 统计字节流量等
|
|||
|
|
.Build();
|
|||
|
|
//4、创建任务
|
|||
|
|
// 检测tcp 是否在运行
|
|||
|
|
var jobDetail = JobBuilder.Create<Jobs>()
|
|||
|
|
.Build();
|
|||
|
|
//4、创建任务
|
|||
|
|
// 同步数据
|
|||
|
|
var jobDetail1 = JobBuilder.Create<JobsOne>()
|
|||
|
|
.Build();
|
|||
|
|
//4、创建任务
|
|||
|
|
// 统计字数数量等
|
|||
|
|
var jobDetai2 = JobBuilder.Create<JobsTwo>()
|
|||
|
|
.Build();
|
|||
|
|
//5、将触发器和任务器绑定到调度器中
|
|||
|
|
await _scheduler.ScheduleJob(jobDetail, trigger);
|
|||
|
|
await _scheduler.ScheduleJob(jobDetail1, trigger1);
|
|||
|
|
await _scheduler.ScheduleJob(jobDetai2, trigger2);
|
|||
|
|
|
|||
|
|
});
|
|||
|
|
thread.Start();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#region BLV_UdpDebug 数据统计图
|
|||
|
|
/// <summary>
|
|||
|
|
/// 数据统计图
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="startDate"></param>
|
|||
|
|
/// <param name="endDate"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public IActionResult GetBLV_UdpDebugImg(string startDate, string endDate)
|
|||
|
|
{
|
|||
|
|
ECHARTS res = CHARTSSERVER.GetBLV_UdpDebugImg(_DEBUGGER_DB, startDate, endDate);
|
|||
|
|
return Json(res);
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
#region BLV_UdpDebug 数据统计饼图
|
|||
|
|
/// <summary>
|
|||
|
|
/// 数据统计饼图 通讯命令 数据统计接收耗时条形统计图
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="startDate"></param>
|
|||
|
|
/// <param name="endDate"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public IActionResult GetBLV_UdpDebugImg_PIE(string startDate, string endDate)
|
|||
|
|
{
|
|||
|
|
ECHARTS res = CHARTSSERVER.GetBLV_UdpDebugImg_RevDelayDateTime(_DEBUGGER_DB, startDate, endDate);
|
|||
|
|
return Json(res);
|
|||
|
|
}
|
|||
|
|
#endregion
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|