Commit 3ece0f4a by 孙香冬

no message

parent 9c9a7fa9
import { getChartOutData, getKeyValueNumberOutData, getListOutData } from "../../cal/out";
import { separateDataAndUint } from "../../cal/privateTools";
import { getHardware } from "../../data/interface/hardwareData";
import { getCsgkBasicData, getEnterpriseTest, getTestAnalysis, getTestLicense, getTestTotalTime } from "../../data/interface/interfaceService";
//云资源
export async function getYZY(req, res) {
let ret:any = {};
let {计算云资源, 使用率, 物理资源} = await getHardware();
let 计算云资源data = {"cpu":"3568核", "内存":"4000G", "本地磁盘":"1999G", "云磁盘总量":"848484G"};
ret["api1"] = getKeyValueNumberOutData("计算云资源", 计算云资源data );
ret["api1"] = getKeyValueNumberOutData("计算云资源", 计算云资源 );
let 计算云资源使用率data = {"CPU":"63.9%", "内存":"30.4%", "本地磁盘":"29.6%", "云磁盘cds ssd池":"23%", "云磁盘cds sata池":"73%", "对象存储":"73.83%"};
ret["api2"] = getKeyValueNumberOutData("计算云资源使用率", 计算云资源使用率data );
ret["api2"] = getKeyValueNumberOutData("计算云资源使用率", 使用率 );
let 物理资源data = {"物理机":"100台", "网络设备":"34台", "安全设备":"4台", "机柜":"16台"};
ret["api3"] = getKeyValueNumberOutData("物理资源", 物理资源data );
ret["api3"] = getKeyValueNumberOutData("物理资源", 物理资源 );
res.send(ret);
}
......@@ -30,10 +34,18 @@ export async function getCSGK(req, res) {
{key:"功能测试总里程", value:"3105km", icon:"http://192.168.0.117:30001/csgk/5.png"},
{key:"功能测试总时长", value:"5635h", icon:"http://192.168.0.117:30001/csgk/6.png"},
];
let 测试概况基础数据 = await getCsgkBasicData();
let 基础数据 = [];
for (let key in 测试概况基础数据) {
let index = 1;
基础数据.push({key, value: 测试概况基础数据[key], icon: `http://192.168.0.117:30001/csgk/${index}.png`});
index++;
}
let 基础数据Info = [];
基础数据data.forEach(info => {
基础数据.forEach(info => {
let {key, value, icon} = info;
let {dataNum, dataUnit} = separateDataAndUint(value);
基础数据Info.push({key, value:dataNum, icon, unit:dataUnit});
......@@ -50,20 +62,21 @@ export async function getCSGK(req, res) {
let 今日功能测试data = {"里程":"1478km", "时长":"421.3h"};
ret["api4"] = getKeyValueNumberOutData("今日功能测试", 今日功能测试data);
let 测试牌照分布data = {"http://192.168.0.117:30001/img/AutoX.png":"61辆", "http://192.168.0.117:30001/img/阿利昂斯.png":"45辆",
"http://192.168.0.117:30001/img/百度.png":"31辆", "http://192.168.0.117:30001/img/宝马.png":"47辆",
"http://192.168.0.117:30001/img/初速度.png":"65辆", "http://192.168.0.117:30001/img/滴滴.png":"71辆",
"http://192.168.0.117:30001/img/丰田.png":"18辆", "http://192.168.0.117:30001/img/华为.png":"23辆",
"http://192.168.0.117:30001/img/吉利汽车.png":"33辆", "http://192.168.0.117:30001/img/商汤.png":"16辆",
"http://192.168.0.117:30001/img/上汽大通.png":"22辆", "http://192.168.0.117:30001/img/上汽大众.png":"69辆",
"http://192.168.0.117:30001/img/上汽红岩.png":"11辆", "http://192.168.0.117:30001/img/上汽赛可.png":"36辆",
"http://192.168.0.117:30001/img/上汽通用.png":"16辆", "http://192.168.0.117:30001/img/上汽通用车.png":"73辆",
"http://192.168.0.117:30001/img/深兰.png":"51辆", "http://192.168.0.117:30001/img/通用中国.png":"56辆",
"http://192.168.0.117:30001/img/图森未来.png":"33辆", "http://192.168.0.117:30001/img/蔚来.png":"67辆",
"http://192.168.0.117:30001/img/仙途智能.png":"19辆", "http://192.168.0.117:30001/img/小马智行.png":"46辆",
"http://192.168.0.117:30001/img/依行科技.png":"30辆", "http://192.168.0.117:30001/img/中车.png":"71辆",
"http://192.168.0.117:30001/img/中智行.png":"21辆"};
// let 测试牌照分布data = {"http://192.168.0.117:30001/img/AutoX.png":"61辆", "http://192.168.0.117:30001/img/阿利昂斯.png":"45辆",
// "http://192.168.0.117:30001/img/百度.png":"31辆", "http://192.168.0.117:30001/img/宝马.png":"47辆",
// "http://192.168.0.117:30001/img/初速度.png":"65辆", "http://192.168.0.117:30001/img/滴滴.png":"71辆",
// "http://192.168.0.117:30001/img/丰田.png":"18辆", "http://192.168.0.117:30001/img/华为.png":"23辆",
// "http://192.168.0.117:30001/img/吉利汽车.png":"33辆", "http://192.168.0.117:30001/img/商汤.png":"16辆",
// "http://192.168.0.117:30001/img/上汽大通.png":"22辆", "http://192.168.0.117:30001/img/上汽大众.png":"69辆",
// "http://192.168.0.117:30001/img/上汽红岩.png":"11辆", "http://192.168.0.117:30001/img/上汽赛可.png":"36辆",
// "http://192.168.0.117:30001/img/上汽通用.png":"16辆", "http://192.168.0.117:30001/img/上汽通用车.png":"73辆",
// "http://192.168.0.117:30001/img/深兰.png":"51辆", "http://192.168.0.117:30001/img/通用中国.png":"56辆",
// "http://192.168.0.117:30001/img/图森未来.png":"33辆", "http://192.168.0.117:30001/img/蔚来.png":"67辆",
// "http://192.168.0.117:30001/img/仙途智能.png":"19辆", "http://192.168.0.117:30001/img/小马智行.png":"46辆",
// "http://192.168.0.117:30001/img/依行科技.png":"30辆", "http://192.168.0.117:30001/img/中车.png":"71辆",
// "http://192.168.0.117:30001/img/中智行.png":"21辆"};
let 测试牌照分布data = await getTestLicense();
ret["api5"] = getKeyValueNumberOutData("测试牌照分布", 测试牌照分布data);
let 路侧监控视频data = {"src":"http://10.51.50.53:8278/live/13060200882000000001@31011402601318800184@34020000001320000001.m3u8?vhost=bduv0utmss4c3nzidjn.a.e-web.com.cn", "type": 'application/x-mpegURL'};
......@@ -90,7 +103,9 @@ export async function getCSFX(req, res) {
{key:"2021.11", value:"310km"}, {key:"2021.12", value:"870km"}, {key:"2022.1", value:"860km"}, {key:"2022.2", value:"980km"}, {key:"2022.3", value:"103km"},
{key:"2022.4", value:"650km"}, {key:"2022.5", value:"560km"}, {key:"2022.6", value:"130km"}, {key:"2022.7", value:"606km"}, {key:"2022.8", value:"171km"}
];
let 月度测试里程分布data = {测试: {unit:'km', dataInfo: 月度测试里程分布测试data}, 功能测试: {unit:'km', dataInfo: 月度测试里程分布功能测试data}};
let {testMileage, functionTestMileage} = await getTestAnalysis();
let 月度测试里程分布data = {测试: {unit:'km', dataInfo: testMileage}, 功能测试: {unit:'km', dataInfo: functionTestMileage}};
ret["api1"] = getChartOutData("月度测试里程分布", 月度测试里程分布data);
......@@ -108,7 +123,12 @@ export async function getCSFX(req, res) {
{key:"2021.11", value:"310h"}, {key:"2021.12", value:"870h"}, {key:"2022.1", value:"860h"}, {key:"2022.2", value:"980h"}, {key:"2022.3", value:"103h"},
{key:"2022.4", value:"650h"}, {key:"2022.5", value:"560h"}, {key:"2022.6", value:"130h"}, {key:"2022.7", value:"606h"}, {key:"2022.8", value:"171h"}
];
let 月度测试时长分布data = {测试: {unit:'h', dataInfo: 月度测试时长分布测试data}, 功能测试: {unit:'h', dataInfo: 月度测试时长分布功能测试data}};
let {月度测试时长data, 企业测试时长data} = await getTestTotalTime();
let {testTime, functionTestTime} = 月度测试时长data;
let 月度测试时长分布data = {测试: {unit:'h', dataInfo: testTime}, 功能测试: {unit:'h', dataInfo: functionTestTime}};
ret["api2"] = getChartOutData("月度测试时长分布", 月度测试时长分布data);
......@@ -122,7 +142,9 @@ export async function getCSFX(req, res) {
{key:"AutoX", value:"33km"}, {key:"小马易车", value:"26km"}, {key:"上汽红岩", value:"47km"}, {key:"阿利昂斯", value:"27km"}, {key:"宝马", value:"70km"},
{key:"吉利汽车", value:"75km"}, {key:"上汽通用", value:"67km"}, {key:"图森未来", value:"72km"}
];
let 企业测试里程分布data = {测试: {unit:'km', dataInfo: 企业测试里程测试分布data}, 功能测试: {unit:'km', dataInfo: 企业测试里程功能测试分布data}};
let {testMileageEnterprise, functionTestMileageEnterprise} = await getEnterpriseTest();
let 企业测试里程分布data = {测试: {unit:'km', dataInfo: testMileageEnterprise}, 功能测试: {unit:'km', dataInfo: functionTestMileageEnterprise}};
ret["api3"] = getChartOutData("企业测试里程分布", 企业测试里程分布data);
......@@ -136,7 +158,9 @@ export async function getCSFX(req, res) {
{key:"AutoX", value:"63h"}, {key:"小马易车", value:"26h"}, {key:"上汽红岩", value:"47h"}, {key:"阿利昂斯", value:"27km"}, {key:"宝马", value:"70km"},
{key:"吉利汽车", value:"75km"}, {key:"上汽通用", value:"67km"}, {key:"图森未来", value:"72km"}
];
let 企业测试时长分布data = {测试: {unit:'h', dataInfo: 企业测试时长测试分布data}, 功能测试: {unit:'h', dataInfo: 企业测试时长功能测试分布data}};
let {testTimeEnterprise, functionTestTimeEnterprise} = 企业测试时长data;
let 企业测试时长分布data = {测试: {unit:'h', dataInfo: testTimeEnterprise}, 功能测试: {unit:'h', dataInfo: functionTestTimeEnterprise}};
ret["api4"] = getChartOutData("企业测试时长分布", 企业测试时长分布data);
let 企业脱离自动驾驶比率data:any = [
......
......@@ -3,7 +3,7 @@ import * as fs from "fs";
import { BizError } from "../util/bizError";
import { analysisXml } from "../util/myXML";
export let port = Number(process.env.PORT) || Number(process.argv[3]) || 30001; //如果xml里面没有配置 就会使用到这里的端口
export let port = Number(process.env.PORT) || Number(process.argv[3]) || 30002; //如果xml里面没有配置 就会使用到这里的端口
export let dbConfig;
......
......@@ -6,6 +6,9 @@ export async function getHardware() {
let url = "http://10.51.50.140:8080/api/static/PrivateCloudUsageStatics";
// let result:any = await get(url, {}, {});
let 计算云资源;
let 物理资源;
let 使用率;
let 云资源result = {
"content":[
......@@ -15,10 +18,10 @@ export async function getHardware() {
"mem":"24430 GB",
"localDisk":"17707 GB",
"cloudDisk":"214368 GB",
"server":"100",
"network":"34",
"security":"4",
"rack":"16"
"server":"100", //物理机
"network":"34", //网络设备
"security":"4", //安全设备
"rack":"16" //机柜
}
],
"pageable":{
......@@ -51,18 +54,18 @@ export async function getHardware() {
if (云资源result.content && 云资源result.content[0]) {
let contentInfo = 云资源result.content[0];
let {id, cpu, mem, localDisk, cloudDisk, network, rack, security, server} = contentInfo;
let 计算云资源 = {
计算云资源 = {
"cpu":cpu,
"内存":mem,
"本地磁盘":localDisk,
"云磁盘总量":cloudDisk
};
let 物理资源 = {
"物理机":"",
"网络设备":"",
"安全设备":"",
"机柜":""
物理资源 = {
"物理机":server,
"网络设备":network,
"安全设备":security,
"机柜":rack
};
}
......@@ -81,7 +84,7 @@ export async function getHardware() {
}
if (使用率result) {
let 使用率 = {
使用率 = {
"cpu":使用率result.vcpuUsed,
"内存":使用率result.memoryUsed,
"本地磁盘":使用率result.localDiskUsed,
......@@ -91,12 +94,6 @@ export async function getHardware() {
};
}
let 物理资源result = {}
console.log();
return {计算云资源, 使用率, 物理资源};
}
......@@ -3,6 +3,9 @@ import { get } from "../../util/request";
// {key:"2021.01", count:"31km", autoCount:"45km"}, {key:"2021.02", count:"42km", autoCount:"75km"}, {key:"2020.02", count:"42km", autoCount:"75km"}, {key:"2022.08", count:"42km", autoCount:"75km"}
let 月里程数据:any = [];//格式 [{key:"日期 格式是 2021.1", count:"测试里程", autoCount:"功能测试里程"}]
let 企业日里程数据 = {}; //格式 {"企业名称":{count:"测试里程", autoCount:"功能测试里程"} }
let 总测试时长;
let 企业时长数据;
let 月时长数据;
let lastMonths = "";
//月度测试数据库源数据接口
......@@ -43,9 +46,248 @@ export async function getTestAnalysis() {
})
}
return {testMileage, functionTestMileage}
return {testMileage, functionTestMileage};
}
//企业测试数据库源数据接口
export async function getEnterpriseTest() {
let testMileageEnterprise = [];
let functionTestMileageEnterprise = [];
for(let key in 企业日里程数据) {
let 企业日里程数据data = 企业日里程数据[key];
let {count, autoCount} = 企业日里程数据data;
testMileageEnterprise.push({key, value: count});
functionTestMileageEnterprise.push({key, value: autoCount});
}
return {testMileageEnterprise, functionTestMileageEnterprise};
}
//测试牌照分布
export async function getTestLicense() {
let index = 18;
let 测试牌照分布;
let 测试牌照分布data = {};
let result:any = await get(interfaceUrl, {index});
if (result && result.success) {
测试牌照分布 = result.result[0].result;
} else {
//报错
console.log();
测试牌照分布 = [];
}
测试牌照分布.forEach( item => {
let {enterprise, cnt} = item;
let imgItem = `http://192.168.0.117:30001/img/${enterprise}.png`;
测试牌照分布data[imgItem] = cnt;
})
return 测试牌照分布data;
}
//企业脱离自动驾驶比率
/**
* autoMilegae 自动驾驶里程
* disengagement 脱离次数
*/
export async function getDetachmentRatio() {
let st = moment().format("YYMM") + "01";
let et = moment().format("YYMM") + "31";
let index = 14;
let result:any = await get(interfaceUrl, {st, et, index});
if (result && result.success) {
result = result.result;
} else {
//报错
console.log();
result = [];
}
console.log(result);
}
//初始化测试时长分布
export async function getTestDurationDistribution() {
let index = 19;
let et = "";
let 时长数据:any = await get(interfaceUrl, {index, et});
if (时长数据 && 时长数据.success) {
总测试时长 = 时长数据.result[0].result; //[{durationTotal: 测试时长, autoDurationTotal:测试总时长}]
企业时长数据 = 时长数据.result[1].result; //[{durationTotal: 测试时长, autoDurationTotal:测试总时长, time: 日期, enterprise: 企业}]
月时长数据 = 时长数据.result[2].result; //[{durationTotal: 测试时长, autoDurationTotal:测试总时长, time: 日期}]
} else {
//报错
console.log();
企业时长数据 = [];
月时长数据 = [];
}
return {企业时长数据, 月时长数据};
}
//测试概况基础数据
export async function getCsgkBasicData() {
await getTestDurationDistribution();
let 测试企业数 = 0;
let 企业牌照数 = 0;
let 测试总里程 = 0;
let 测试总时长 = 0;
let 功能测试总里程 = 0;
let 功能测试总时长 = 0;
let index = 18;
let 测试牌照分布result:any = await get(interfaceUrl, {index});
let 测试牌照分布;
if (测试牌照分布result && 测试牌照分布result.success) {
测试牌照分布 = 测试牌照分布result.result[0].result;
}
测试牌照分布.forEach(item => {
企业牌照数 += item.cnt;
})
总测试时长.forEach( item => {
测试总时长 = item.durationTotal;
功能测试总时长 = parseInt(item.autoDurationTotal);
})
let 企业日里程result:any = await get(interfaceUrl, {st:"", et:"", index:1});
let 企业日里程;
if (企业日里程result && 企业日里程result.success) {
企业日里程 = 企业日里程result.result[0].result;
}
企业日里程.forEach(item => {
测试总里程 += parseInt(item.totalMileage);
})
let 企业日驾驶里程result:any = await get(interfaceUrl, {st:"", et:"", index:2});
let 企业日驾驶里程;
if (企业日驾驶里程result && 企业日驾驶里程result.success) {
企业日驾驶里程 = 企业日驾驶里程result.result[0].result;
}
企业日驾驶里程.forEach(item => {
功能测试总里程 += parseInt(item.autoMileage);
})
let 测试概况data = {
"测试企业数": 测试牌照分布.length + "家",
"企业牌照数": 企业牌照数 + "个",
"测试总里程": 测试总里程 + "km",
"测试总时长": 测试总时长 + "h",
"功能测试总里程": 功能测试总里程 + "km",
"功能测试总时长": 功能测试总时长 + "h"
};
return 测试概况data;
}
//测试概况今日数据
export async function getCsgkDayData() {
let 今日数据;
let 今日测试;
let 今日功能测试;
await getTestDurationDistribution();
let whereTime = moment().format("DD");
let st = moment().format("YYMM") + "01";
let et = moment().format("YYMMDD");
let 今日测试里程list = await getInterfaceData("", "", 1);
let 测试里程 = 0;
今日测试里程list.forEach(info => {
let {timeDay, enterprise, totalMileage} = info;
if (timeDay == whereTime) {
测试里程 += parseInt(totalMileage);
}
});
let 今日功能测试里程list = await getInterfaceData("", "", 2);
let 功能测试里程 = 0;
今日功能测试里程list.forEach(info => {
let {timeDay, enterprise, autoMileage} = info;
if (timeDay == whereTime) {
功能测试里程 += parseInt(autoMileage);
}
});
今日数据 = {
"在线车辆数": ""
}
今日测试 = {
"里程": 测试里程,
"时长": ""
}
今日功能测试 = {
"里程": 功能测试里程,
"时长": ""
}
return {今日数据, 今日测试, 今日功能测试};
}
//月度测试时长分布
export async function getTestTotalTime() {
let {企业时长数据, 月时长数据} = await getTestDurationDistribution();
let 月度测试时长data;
let 企业测试时长data;
let testTime = []; //测试时长
let functionTestTime = []; //功能测试时长
let testTimeEnterprise = []; //企业测试时长
let functionTestTimeEnterprise = []; //企业功能测试时长
let months = moment().format('YYYY.MM');
let times = moment().format("YYMM");
let testCount = 0;
let functionCount = 0;
月时长数据.forEach(info => {
let {time, durationTotal, autoDurationTotal} = info;
if(time == times) {
testCount += parseInt(durationTotal);
functionCount += parseInt(autoDurationTotal);
}
});
testTime.push({key:months, value:testCount});
functionTestTime.push({key:months, value:functionCount});
let {newDateArr, whereDateArr} = getPreMonthDay(20);
for (let i = 0; i < newDateArr.length; i++) {
let months = whereDateArr[i];
let newTime = newDateArr[i];
月时长数据.forEach(item => {
let {time, durationTotal, autoDurationTotal} = item;
if (months == time) {
testTime.push({key:newTime, value:durationTotal});
functionTestTime.push({key:newTime, value:autoDurationTotal});
}
})
}
let testEnterpriseCount = 0;
let functionTestEnterpriseCount = 0;
let addTest = {};
let addFunction = {};
企业时长数据.forEach(info => {
let {time, durationTotal, autoDurationTotal, enterprise} = info;
testEnterpriseCount += parseInt(durationTotal);
addTest[enterprise] = testEnterpriseCount;
functionTestEnterpriseCount += parseInt(autoDurationTotal);
addFunction[enterprise] = functionTestEnterpriseCount;
})
for(let key in addTest) {
testTimeEnterprise.push({key, value: addTest[key]});
}
for(let key in addFunction) {
functionTestTimeEnterprise.push({key, value: addFunction[key]});
}
月度测试时长data = {testTime, functionTestTime};
企业测试时长data = {testTimeEnterprise, functionTestTimeEnterprise};
return {月度测试时长data, 企业测试时长data};
}
//initData 在main方法中调用
export async function initData() {
......@@ -79,7 +321,6 @@ export async function initData() {
if (!企业日里程数据[enterprise]) 企业日里程数据[enterprise] = {count:0, autoCount:0};
企业日里程数据[enterprise].autoCount += parseInt(autoMileage);
});
let addItem = {count, autoCount:testCount, key};
月里程数据.push(addItem );
......@@ -89,6 +330,7 @@ export async function initData() {
}, 3600 *2 * 1000);
}
//获取本月之前的数据
async function historyData() {
let lastEt = "";
......@@ -124,6 +366,7 @@ async function historyData() {
});
月里程数据.push( {count, autoCount:testCount, key} );
console.log(`完成 ${st} 数据的初始化`);
}
//查找21个月以外的数据
......
......@@ -62,7 +62,7 @@ let heart = {
//ws客户端
async function createSocket() {
let path = "ws://10.51.50.136:8090/ws/v1";
let ws = new WebSocket(path, {perMessageDeflate: false});
let ws = new WebSocket(path, {perMessageDeflate: false});
ws.onclose = async (err) => {
console.log("连接关闭: ", err);
......@@ -88,6 +88,6 @@ async function createSocket() {
//todo
export async function initWSData() {
// await createSocket();
await createSocket();
console.log();
}
\ No newline at end of file
import { initConfig, port } from "./config/serverConfig";
import { getTestAnalysis, initData } from "./data/interface/interfaceService";
import { getHardware } from "./data/interface/hardwareData";
import { getTestLicense, getCsgkDayData, initData } from "./data/interface/interfaceService";
import { initWSData } from "./data/interface/wsData";
import { httpServer } from "./net/http_server";
async function lanuch() {
// await initConfig();
httpServer.createServer(port);
// await initData();
console.log('This indicates that the server is started successfully.');
await getCsgkDayData();
// await getTestLicense();
console.log("初始化成功");
}
lanuch();
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment