/*******************************************************************************
* Copyright © 2020 HT.Cloud.Framework 版权所有
* Author: HT.Cloud
* Description: WaterCloud快速开发平台
* Website:
*********************************************************************************/
using Microsoft.AspNetCore.Mvc;
using System.Linq;
using System.Threading.Tasks;
using HT.Cloud.Code;
using HT.Cloud.Service.SystemSecurity;
using Quartz;
namespace HT.Cloud.Web.Areas.SystemSecurity.Controllers
{
[Area("PenMeiReportManage")]
[HandlerLogin(needLogin: false)]
[HandlerAuthorize(needAuth: false)]
public class PenMeiNetWorkStateNewController : BaseController
{
public ServerStateService _serverStateService { get; set; }
public RealTimeIOStateService _realTimeIOState { get; set; }
///
/// 绑定数据仓库的数据库ID
///
private string systemDescription = GlobalContext.SystemConfig.SystemDescription;
[HttpGet]
public async Task GetServerDataJson()
{
return await Task.Run(() =>
{
/*
* 一
* 1、安装java集成开发环境,根据示例重构jimu报表的代码。
* 2、jimu报表的java环境继承到.Net中过于繁琐和前端功能较简单放弃使用jumu报表,使用另一款.Net作为服务端的cell报表。
* 二
* 1、下载cell报表前端源码,安装前端Vue3源码环境,通过反编译补全功能代码和与后端的Api请求。
* 2、去除无用功能和界面,只保留报表功能,将所有原项目logo和名称标记替换为恒拓相关。
* 三
* 1、获取cellreport后端源码,编辑源码库的静态资源,下载补全项目引用的开源类库。
* 2、修改水印函数库文件,将唯一不可修改的导出pdf水印替换为空或恒拓环保科技。
* 四
* 1、将前端和后端源码编译打包,重构项目运行结构,前后端集成为一个服务实力,部署测试。
* 2、报表软件交给曲工进行报表编辑和运行测试,同时进行debug调试。
* 五
* 1、将曲工编辑好的报表集成至管理平台。
* 2、比较JS自动绘图组件,选择适合自动生成的组件进行io模块自动构建。
*/
//windows环境
var computer = ComputerHelper.GetComputerInfo();
var arm = computer.RAMRate;
var cpu = computer.CPURate;
var iis = computer.RunTime;
var TotalRAM = computer.TotalRAM;
string ip = WebHelper.GetWanIp();
string ipLocation = WebHelper.GetIpLocation(ip);
var IP = string.Format("{0} ({1})", ip, ipLocation);
return Content(new { ARM = arm, CPU = cpu, IIS = iis, TotalRAM = TotalRAM, IP = IP }.ToJson());
});
}
[HttpGet]
public async Task GetServerData()
{
var data = (await _serverStateService.GetList(2)).OrderBy(a => a.F_Date).ToList();
return Content(data.ToJson());
}
[HttpGet]
public async Task GetRealIOGroup()
{
var listgroup = _realTimeIOState.GetIOGroup(systemDescription);
return Content(listgroup.ToJson());
}
[HttpGet]
public async Task GetRealIOInfo()
{
var listinfo = _realTimeIOState.GetIOInfo(systemDescription);
return Content(listinfo.ToJson());
}
[HttpGet]
public async Task GetRealIOState()
{
var listgroup = _realTimeIOState.GetIOGroup(systemDescription);
var listinfo = _realTimeIOState.GetIOInfo(systemDescription);
var data = _realTimeIOState.GetRtData();
return Content(data.Result);
}
}
}