/******************************************************************************* * 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 PenMeiJMReportController : BaseController { public ServerStateService _serverStateService { get; set; } public RealTimeIOStateService _realTimeIOState { get; set; } [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("喷煤系统"); return Content(listgroup.ToJson()); } [HttpGet] public async Task GetRealIOInfo() { var listinfo = _realTimeIOState.GetIOInfo("喷煤系统"); return Content(listinfo.ToJson()); } [HttpGet] public async Task GetRealIOState() { var listgroup = _realTimeIOState.GetIOGroup("喷煤系统"); var listinfo = _realTimeIOState.GetIOInfo("喷煤系统"); var data = _realTimeIOState.GetRtData(); return Content(data.Result); } } }