Commit 1f5d4389 by 孙香冬

no message

parent da412eda
No preview for this file type
...@@ -50,7 +50,8 @@ ...@@ -50,7 +50,8 @@
<token>09a98bc555474e058ef90b6cc6e23638</token> <token>09a98bc555474e058ef90b6cc6e23638</token>
</mapView> </mapView>
<!-- 图片地址 这里填本机地址 --> <!-- 图片地址 这里填本机地址 -->
<imagePath>192.168.0.47</imagePath> <!-- <imagePath>192.168.0.247</imagePath> -->
<imagePath>127.0.0.1</imagePath>
<!-- 地图中心点 --> <!-- 地图中心点 -->
<mapCenter> <mapCenter>
<lng>121.183574</lng> <lng>121.183574</lng>
......
...@@ -99,26 +99,30 @@ export async function controlGetCarList(req, res) { ...@@ -99,26 +99,30 @@ export async function controlGetCarList(req, res) {
let carList = []; let carList = [];
enterpriseVehicleList.forEach(info => { enterpriseVehicleList.forEach(info => {
let vehicleList = info.vehicleList let vehicleList = info.vehicleList
vehicleList.sort((a, b) => {
return a.online - b.online;
})
vehicleList.forEach(list => { vehicleList.forEach(list => {
let {vin, enterprise, online} = list; let {vin, enterprise, online} = list;
let isOnline = ""; let isOnline = "";
switch (online) { switch (online) {
case 0:
isOnline = "离线";
break;
case 1: case 1:
isOnline = "在线"; isOnline = "在线";
carList.unshift({vin, enterprise, isOnline});
break;
case 0:
isOnline = "离线";
carList.push({vin, enterprise, isOnline});
break; break;
} }
carList.push({vin, enterprise, isOnline});
}) })
}) })
// res.send({carList});
res.send({carList}); res.send({carList});
} }
//小车详情 点击播放视频 //小车详情 点击播放视频
let carVideoQueue = {vin:"", sessionId:"", index:"", isOpen:false};//{sessionId:"", isOpen } let carVideoQueue = {vin:"", sessionId:"", index:"", isOpen:false};//{sessionId:"", isOpen }
......
import { getKeyValueNotNumberOutData, getListOutData, getStringOutData } from "../cal/out";
import { get创新生态布局 } from "../data/analysisExcelData";
export async function getData(req, res) {
let excelData:any = get创新生态布局();
let ret:any = {};
ret["api1"] = getStringOutData("打造一批创新平台", excelData["打造一批创新平台"]);
ret["api2"] = getKeyValueNotNumberOutData("实施一批重大课题", excelData["实施一批重大课题"]);
ret["api3"] = getListOutData("实施一批重大课题详细列表", excelData["实施一批重大课题详细列表"]);
ret["api4"] = getKeyValueNotNumberOutData("制定一批标准规范", excelData["制定一批标准规范"]);
ret["api5"] = getListOutData("制定一批标准规范详细列表", excelData["制定一批标准规范详细列表"]);
res.send(ret);
}
\ No newline at end of file
...@@ -88,7 +88,7 @@ function urlSortOut(urlList) { ...@@ -88,7 +88,7 @@ function urlSortOut(urlList) {
urlList.forEach(urlStr => { urlList.forEach(urlStr => {
if (!urlStr) return; if (!urlStr) return;
if (urlStr.indexOf(".mp4") >= 0) { if (urlStr.indexOf(".mp4") >= 0 || urlStr.indexOf(".m4v") >= 0) {
videoList.push(urlStr) videoList.push(urlStr)
} else { } else {
imgList.push(urlStr) imgList.push(urlStr)
......
...@@ -5,7 +5,7 @@ import { appConfig, dataCenterInterfaceConfig, getImageIp, systemConfig} from ". ...@@ -5,7 +5,7 @@ import { appConfig, dataCenterInterfaceConfig, getImageIp, systemConfig} from ".
import { getHardware } from "../../data/interface/hardwareData"; import { getHardware } from "../../data/interface/hardwareData";
// import { getCsgkData, getDetachmentRatio, getTestAnalysis, getTestTotalTime } from "../../data/interface/interfaceService"; // import { getCsgkData, getDetachmentRatio, getTestAnalysis, getTestTotalTime } from "../../data/interface/interfaceService";
import { getMap } from "../../data/interface/mapInterfaceData"; import { getMap } from "../../data/interface/mapInterfaceData";
import { getOnlieCarCount } from "../../data/interface/wsData"; import { getOnlieCarCount, vehicleLocData } from "../../data/interface/wsData";
import { getQycs, getQytlzdjs, getYdcs } from "../../data/dataCenterInterface/csfxData"; import { getQycs, getQytlzdjs, getYdcs } from "../../data/dataCenterInterface/csfxData";
import { getInterfaceData, getJrsj } from "../../data/dataCenterInterface/csgkData"; import { getInterfaceData, getJrsj } from "../../data/dataCenterInterface/csgkData";
import { getCarVideo, getInterfaceByInterfaceName } from "../../data/cronJob"; import { getCarVideo, getInterfaceByInterfaceName } from "../../data/cronJob";
...@@ -65,17 +65,17 @@ export async function getCSFX(req, res) { ...@@ -65,17 +65,17 @@ export async function getCSFX(req, res) {
let {月度测试时长数据, 月度测试时长功能数据, 月度测试里程数据, 月度测试里程功能数据} = await getYdcs(); let {月度测试时长数据, 月度测试时长功能数据, 月度测试里程数据, 月度测试里程功能数据} = await getYdcs();
let 月度测试里程分布data = {测试: {unit:'km', dataInfo: 月度测试里程数据}, 功能测试: {unit:'km', dataInfo: 月度测试里程功能数据}}; let 月度测试里程分布data = {测试: {unit:'公里', dataInfo: 月度测试里程数据}, 功能测试: {unit:'公里', dataInfo: 月度测试里程功能数据}};
ret["api1"] = getChartOutData("月度测试里程分布", 月度测试里程分布data); ret["api1"] = getChartOutData("月度测试里程分布", 月度测试里程分布data);
let 月度测试时长分布data = {测试: {unit:'h', dataInfo: 月度测试时长数据}, 功能测试: {unit:'h', dataInfo: 月度测试时长功能数据}}; let 月度测试时长分布data = {测试: {unit:'小时', dataInfo: 月度测试时长数据}, 功能测试: {unit:'小时', dataInfo: 月度测试时长功能数据}};
ret["api2"] = getChartOutData("月度测试时长分布", 月度测试时长分布data); ret["api2"] = getChartOutData("月度测试时长分布", 月度测试时长分布data);
let {企业测试时长数据, 企业测试时长功能数据, 企业测试里程数据, 企业测试里程功能数据} = await getQycs(); let {企业测试时长数据, 企业测试时长功能数据, 企业测试里程数据, 企业测试里程功能数据} = await getQycs();
let 企业测试里程分布data = {测试: {unit:'km', dataInfo: 企业测试里程数据}, 功能测试: {unit:'km', dataInfo: 企业测试里程功能数据}}; let 企业测试里程分布data = {测试: {unit:'公里', dataInfo: 企业测试里程数据}, 功能测试: {unit:'公里', dataInfo: 企业测试里程功能数据}};
ret["api3"] = getChartOutData("企业测试里程分布", 企业测试里程分布data); ret["api3"] = getChartOutData("企业测试里程分布", 企业测试里程分布data);
let 企业测试时长分布data = {测试: {unit:'h', dataInfo: 企业测试时长数据}, 功能测试: {unit:'h', dataInfo: 企业测试时长功能数据}}; let 企业测试时长分布data = {测试: {unit:'小时', dataInfo: 企业测试时长数据}, 功能测试: {unit:'小时', dataInfo: 企业测试时长功能数据}};
ret["api4"] = getChartOutData("企业测试时长分布", 企业测试时长分布data); ret["api4"] = getChartOutData("企业测试时长分布", 企业测试时长分布data);
res.send(ret); res.send(ret);
...@@ -92,20 +92,20 @@ export async function mapData(req, res) { ...@@ -92,20 +92,20 @@ export async function mapData(req, res) {
let { cameraCount, holographicIntersectionCount, laserRadarCount, mecCount, mmwCount, roadMileage, rsuCount, siboxCount, smartIntersectionCount } = await getInterfaceByInterfaceName(dataCenterInterfaceConfig.roadConstructionInfo, {}); let { cameraCount, holographicIntersectionCount, laserRadarCount, mecCount, mmwCount, roadMileage, rsuCount, siboxCount, smartIntersectionCount } = await getInterfaceByInterfaceName(dataCenterInterfaceConfig.roadConstructionInfo, {});
let 基础数据data = { let 基础数据data = {
"摄像机": cameraCount, "摄像机": cameraCount + "台",
"激光雷达":laserRadarCount, "激光雷达":laserRadarCount + "台",
"毫米波雷达":mmwCount, "毫米波雷达":mmwCount + "台",
"RSU":rsuCount, "RSU":rsuCount + "台",
"MEC":mecCount, "MEC":mecCount + "台",
"SiBox":siboxCount, "SiBox":siboxCount + "台",
}; };
ret["base"] = getKeyValueNumberOutData("基础数据右", 基础数据data ); ret["base"] = getKeyValueNumberOutData("基础数据右", 基础数据data );
let roadData = { let roadData = {
"车路协同建设里程":roadMileage, "车路协同建设里程":roadMileage + "公里",
"智慧路口数":smartIntersectionCount, "智慧路口数":smartIntersectionCount + "个",
"全息路口数":holographicIntersectionCount "全息路口数":holographicIntersectionCount + "个"
}; };
ret["roadBase"] = getKeyValueNumberOutData("基础数据左", roadData ); ret["roadBase"] = getKeyValueNumberOutData("基础数据左", roadData );
...@@ -165,7 +165,7 @@ export async function carInfo(req, res) { ...@@ -165,7 +165,7 @@ export async function carInfo(req, res) {
vin:carInfo.vin, vin:carInfo.vin,
vehicleType:carInfo.vehicleType, vehicleType:carInfo.vehicleType,
type:"自动驾驶", type:"自动驾驶",
velocity:"45km/h" velocity:"45公里/小时"
} }
let endTime = moment().format("YYYY-MM-DD hh:mm:ss"); let endTime = moment().format("YYYY-MM-DD hh:mm:ss");
...@@ -177,13 +177,13 @@ export async function carInfo(req, res) { ...@@ -177,13 +177,13 @@ export async function carInfo(req, res) {
testData.monthlyTestStatusList.forEach(info => { testData.monthlyTestStatusList.forEach(info => {
let { date, testStatistics } = info; let { date, testStatistics } = info;
let key = moment(date).format("YYYY.MM"); let key = moment(date).format("YYYY.MM.DD");
let { autoDuration, autoMileage, duration, mileage } = testStatistics; let { autoDuration, autoMileage, duration, mileage } = testStatistics;
测试里程.push( {key, value: mileage}); 测试里程.push( {key, value: mileage});
功能测试里程.push( { key, value:autoMileage} ); 功能测试里程.push( { key, value:autoMileage} );
}); });
let 月度测试时长分布data = {测试里程: {unit:'h', dataInfo: 测试里程}, 功能测试里程: {unit:'h', dataInfo: 功能测试里程}}; let 月度测试时长分布data = {测试里程: {unit:'公里', dataInfo: 测试里程}, 功能测试里程: {unit:'公里', dataInfo: 功能测试里程}};
ret["lcbhqs"] = getChartOutData("里程变化趋势", 月度测试时长分布data); ret["lcbhqs"] = getChartOutData("里程变化趋势", 月度测试时长分布data);
//获取小车信息 //获取小车信息
...@@ -201,15 +201,39 @@ export async function carInfo(req, res) { ...@@ -201,15 +201,39 @@ export async function carInfo(req, res) {
let { alertDuration, alertType, positionTime, velocity } = item; let { alertDuration, alertType, positionTime, velocity } = item;
let alertDurationStr = `${alertDuration}`; let alertDurationStr = `${alertDuration}`;
let alertTypeStr = alertType == 1? '违规开启自动驾驶模式' : "手动模式"; let alertTypeStr = alertType == 1? '违规开启自动驾驶模式' : "手动模式";
车辆违规列表.push([positionTime, alertTypeStr, alertDurationStr, `${velocity}km/h`]); 车辆违规列表.push([positionTime, alertTypeStr, alertDurationStr, `${velocity}公里/小时`]);
}); });
let 今日里程;
let 累计里程;
let 今日时长;
let 累计时长;
vehicleLocData.forEach( info => {
let {vin, daymileage, dayduration, totalMileage, totalDuration} = info;
if (vin == carId) {
今日里程 = Math.floor(daymileage);
今日时长 = Math.floor(dayduration/3600);
累计里程 = Math.floor(totalMileage);
累计时长 = Math.floor(totalDuration/3600);
}
})
// let sTime= moment().format("YYYY-MM-DD hh:mm:ss");
// let eTime = moment().format("YYYY-MM-DD hh:mm:ss");
// let testInfo = await getInterfaceByInterfaceName(dataCenterInterfaceConfig.testHistory, {vin:carId, startTime:sTime, endTime:eTime});
// testInfo.monthlyTestStatusList.forEach(info => {
// let { date, testStatistics } = info;
// let { duration, mileage } = testStatistics;
// 今日里程 = mileage;
// 今日时长 = duration;
// });
ret["testInfo"] = { ret["testInfo"] = {
mileage:"422km", mileage:今日里程,
duration:"21h", duration:今日时长,
allMileage:"1222km", allMileage:累计里程, //累计里程
allDuration:"5666h" allDuration:累计时长
} }
ret["clwgqk"] = { ret["clwgqk"] = {
......
...@@ -23,4 +23,26 @@ export function get大事记() { ...@@ -23,4 +23,26 @@ export function get大事记() {
} }
return result; return result;
}
export function get创新生态布局() {
let bolckDataList = getExcelDataBySheetName('创新生态布局.xlsx', '科技创新');
let result = {};
let forKeyValueList = ["实施一批重大课题","制定一批标准规范"];
let forChartList = [];
let forStringList = ["打造一批创新平台"];
let forListData = ["实施一批重大课题详细列表","制定一批标准规范详细列表"];
for (let i = 0; i < bolckDataList.length; i++) {
let {blockData, blockTitle} = bolckDataList[i];
let changeName = changeDataName(blockTitle);
if (forKeyValueList.indexOf(changeName) > -1 ) result[changeName] = planarArrBecomeKeyValueData(blockData);
if (forChartList.indexOf(changeName) > -1 ) result[changeName] = planarArrBecomeChartData(blockData);
if (forStringList.indexOf(changeName) > -1 ) result[changeName] = planarArrBecomeStringListData(blockData);
if (forListData.indexOf(changeName) > -1 ) result[changeName] = planarArrBecomeListData(blockData);
}
return result;
} }
\ No newline at end of file
...@@ -66,8 +66,8 @@ export async function getYdcs() { ...@@ -66,8 +66,8 @@ export async function getYdcs() {
//企业脱离自动驾驶比率 //企业脱离自动驾驶比率
export async function getQytlzdjs() { export async function getQytlzdjs() {
// "企业历史脱离率统计接口"; // "企业历史脱离率统计接口";
let startTime = moment().format("YYYY-MM") + "-01"; let startTime = moment().subtract(1, 'months').startOf('month').format('YYYY-MM-DD');
let endTime = moment().format('YYYY-MM-DD'); let endTime = moment().subtract(1, 'months').endOf('month').format('YYYY-MM-DD');
let data = await getInterfaceByInterfaceName(dataCenterInterfaceConfig.enterpriseExitRate, {startTime, endTime}); let data = await getInterfaceByInterfaceName(dataCenterInterfaceConfig.enterpriseExitRate, {startTime, endTime});
let { enterpriseExitList } = data; let { enterpriseExitList } = data;
......
...@@ -12,11 +12,11 @@ export async function getInterfaceData() { ...@@ -12,11 +12,11 @@ export async function getInterfaceData() {
let jcsjData = [ let jcsjData = [
{key: "测试企业数", value: totalEnterprise + "家"}, {key: "测试企业数", value: totalEnterprise + "家"},
{key: "企业牌照数", value: totalVehicle + ""}, {key: "企业牌照数", value: totalVehicle + ""},
{key: "测试总里程", value: mileage + "km"}, {key: "测试总里程", value: mileage + "公里"},
{key: "测试总时长", value: duration + "h"}, {key: "测试总时长", value: duration + "小时"},
{key: "功能测试总里程", value: autoMileage + "km"}, {key: "功能测试总里程", value: autoMileage + "公里"},
{key: "功能测试总时长", value: autoDuration + "h"} {key: "功能测试总时长", value: autoDuration + "小时"}
]; ];
let cspzData = {}; let cspzData = {};
...@@ -34,9 +34,9 @@ export async function getJrsj() { ...@@ -34,9 +34,9 @@ export async function getJrsj() {
let {autoDuration, autoMileage, duration, mileage} = data; let {autoDuration, autoMileage, duration, mileage} = data;
let 今日数据 = {"在线车辆数": ""} let 今日数据 = {"在线车辆数": ""}
let 今日测试 = { "里程": mileage + 'km', "时长": duration + 'h'}; let 今日测试 = { "里程": mileage + '公里', "时长": duration + '小时'};
let 今日功能测试 = { "里程": autoMileage + 'km', "时长": autoDuration + 'h'}; let 今日功能测试 = { "里程": autoMileage + '公里', "时长": autoDuration + '小时'};
return {今日数据, 今日测试, 今日功能测试}; return {今日数据, 今日测试, 今日功能测试};
} }
import { separateDataAndUint } from "../../cal/privateTools";
import { ERRORENUM } from "../../config/errorEnum"; import { ERRORENUM } from "../../config/errorEnum";
import { appConfig } from "../../config/serverConfig"; import { appConfig } from "../../config/serverConfig";
import { BizError } from "../../util/bizError"; import { BizError } from "../../util/bizError";
...@@ -18,17 +19,24 @@ export async function getHardware() { ...@@ -18,17 +19,24 @@ export async function getHardware() {
if (云资源result.content && 云资源result.content[0]) { if (云资源result.content && 云资源result.content[0]) {
let contentInfo = 云资源result.content[0]; let contentInfo = 云资源result.content[0];
let {id, cpu, mem, localDisk, cloudDisk, network, rack, security, server} = contentInfo; let {id, cpu, mem, localDisk, cloudDisk, network, rack, security, server} = contentInfo;
let {dataNum, dataUnit} = separateDataAndUint(cpu);
// 计算云资源 = {
// "cpu":cpu + "核",
// "内存":mem + "G",
// "本地磁盘":localDisk + "G",
// "云磁盘总量":cloudDisk + "G"
// };
计算云资源 = { 计算云资源 = {
"cpu":cpu, "cpu":dataNum + "核",
"内存":mem, "内存":mem,
"本地磁盘":localDisk, "本地磁盘":localDisk,
"云磁盘总量":cloudDisk "云磁盘总量":cloudDisk
}; };
物理资源 = { 物理资源 = {
"物理机":server, "物理机":server + "台",
"网络设备":network, "网络设备":network + "台",
"安全设备":security, "安全设备":security + "台",
"机柜":rack "机柜":rack + "个"
}; };
} }
......
...@@ -4,6 +4,8 @@ import { broadcastMsg } from "../../biz/jgfwnl/wsData"; ...@@ -4,6 +4,8 @@ import { broadcastMsg } from "../../biz/jgfwnl/wsData";
import { appConfig } from "../../config/serverConfig"; import { appConfig } from "../../config/serverConfig";
import { logConsole, logHandle } from "../../util/log"; import { logConsole, logHandle } from "../../util/log";
export let vehicleLocData = [];
//连接锁 //连接锁
let lockReconnect = false; let lockReconnect = false;
...@@ -101,7 +103,8 @@ export function stats(data) { ...@@ -101,7 +103,8 @@ export function stats(data) {
let dataJson = JSON.parse(data); let dataJson = JSON.parse(data);
if (dataJson.VehicleLoc) { if (dataJson.VehicleLoc) {
let {vin, latitude, longitude, positionTime, vehicleId, velocity} = dataJson.VehicleLoc; let {vin, latitude, longitude, positionTime, vehicleId, velocity, daymileage, dayduration, totalMileage, totalDuration} = dataJson.VehicleLoc;
vehicleLocData.push({vin, daymileage, dayduration, totalMileage, totalDuration}); //当日实时测试里程,当日实时测试时长,累计测试里程,累计测试时长
// console.log("收到小车位置", vin); // console.log("收到小车位置", vin);
// broadcastMsg({lng:longitude||0.0, lat:latitude||0.0, vin, vehicleid:vehicleId}); // broadcastMsg({lng:longitude||0.0, lat:latitude||0.0, vin, vehicleid:vehicleId});
//加入到缓存 //加入到缓存
......
...@@ -4,6 +4,7 @@ import * as asyncHandler from 'express-async-handler' ...@@ -4,6 +4,7 @@ import * as asyncHandler from 'express-async-handler'
import * as jgfwnlBiz from '../biz/jgfwnl/data'; import * as jgfwnlBiz from '../biz/jgfwnl/data';
import * as controlBiz from '../biz/control'; import * as controlBiz from '../biz/control';
import * as dsjBiz from '../biz/dsj'; import * as dsjBiz from '../biz/dsj';
import * as cxstbjBiz from '../biz/cxstbj';
export function setRouter(httpServer){ export function setRouter(httpServer){
//新版本 //新版本
...@@ -13,6 +14,7 @@ export function setRouter(httpServer){ ...@@ -13,6 +14,7 @@ export function setRouter(httpServer){
httpServer.get('/mapdata', asyncHandler(jgfwnlBiz.mapData)); httpServer.get('/mapdata', asyncHandler(jgfwnlBiz.mapData));
httpServer.post('/carinfo', asyncHandler(jgfwnlBiz.carInfo)); httpServer.post('/carinfo', asyncHandler(jgfwnlBiz.carInfo));
httpServer.get('/dsj', asyncHandler(dsjBiz.getData)); httpServer.get('/dsj', asyncHandler(dsjBiz.getData));
httpServer.get('/cxstbj', asyncHandler(cxstbjBiz.getData));
//控制端小车列表接口 //控制端小车列表接口
httpServer.get('/carlist', asyncHandler(controlBiz.controlGetCarList)); httpServer.get('/carlist', asyncHandler(controlBiz.controlGetCarList));
httpServer.get('/dsjnodelist', asyncHandler(dsjBiz.dsjNodeList)); httpServer.get('/dsjnodelist', asyncHandler(dsjBiz.dsjNodeList));
......
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