Commit 1c52c8be by lixinming

Merge branch 'master' of http://123.207.147.179:8888/node_server/motorCity

# Conflicts:
#	serverConfig.xml
parents 375ef59c 1f5d4389
No preview for this file type
......@@ -50,7 +50,12 @@
<token>09a98bc555474e058ef90b6cc6e23638</token>
</mapView>
<!-- 图片地址 这里填本机地址 -->
<<<<<<< HEAD
<imagePath>192.168.0.105</imagePath>
=======
<!-- <imagePath>192.168.0.247</imagePath> -->
<imagePath>127.0.0.1</imagePath>
>>>>>>> 1f5d438964227535959a5ab3bd511e2d1366772e
<!-- 地图中心点 -->
<mapCenter>
<lng>121.183574</lng>
......
......@@ -112,27 +112,31 @@ export async function controlGetCarList(req, res) {
let carList = [];
enterpriseVehicleList.forEach(info => {
let vehicleList = info.vehicleList
vehicleList.sort((a, b) => {
return a.online - b.online;
})
vehicleList.forEach(list => {
let {vin, enterprise, online} = list;
let isOnline = "";
switch (online) {
case 0:
isOnline = "离线";
break;
case 1:
isOnline = "在线";
carList.unshift({vin, enterprise, isOnline});
break;
case 0:
isOnline = "离线";
carList.push({vin, enterprise, isOnline});
break;
}
carList.push({vin, enterprise, isOnline});
})
})
// res.send({carList});
res.send({carList});
}
//小车详情 点击播放视频
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) {
urlList.forEach(urlStr => {
if (!urlStr) return;
if (urlStr.indexOf(".mp4") >= 0) {
if (urlStr.indexOf(".mp4") >= 0 || urlStr.indexOf(".m4v") >= 0) {
videoList.push(urlStr)
} else {
imgList.push(urlStr)
......
......@@ -5,7 +5,7 @@ import { appConfig, dataCenterInterfaceConfig, getImageIp, systemConfig} from ".
import { getHardware } from "../../data/interface/hardwareData";
// import { getCsgkData, getDetachmentRatio, getTestAnalysis, getTestTotalTime } from "../../data/interface/interfaceService";
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 { getInterfaceData, getJrsj } from "../../data/dataCenterInterface/csgkData";
import { getCarVideo, getInterfaceByInterfaceName } from "../../data/cronJob";
......@@ -65,17 +65,17 @@ export async function getCSFX(req, res) {
let {月度测试时长数据, 月度测试时长功能数据, 月度测试里程数据, 月度测试里程功能数据} = await getYdcs();
let 月度测试里程分布data = {测试: {unit:'km', dataInfo: 月度测试里程数据}, 功能测试: {unit:'km', dataInfo: 月度测试里程功能数据}};
let 月度测试里程分布data = {测试: {unit:'公里', dataInfo: 月度测试里程数据}, 功能测试: {unit:'公里', dataInfo: 月度测试里程功能数据}};
ret["api1"] = getChartOutData("月度测试里程分布", 月度测试里程分布data);
let 月度测试时长分布data = {测试: {unit:'h', dataInfo: 月度测试时长数据}, 功能测试: {unit:'h', dataInfo: 月度测试时长功能数据}};
let 月度测试时长分布data = {测试: {unit:'小时', dataInfo: 月度测试时长数据}, 功能测试: {unit:'小时', dataInfo: 月度测试时长功能数据}};
ret["api2"] = getChartOutData("月度测试时长分布", 月度测试时长分布data);
let {企业测试时长数据, 企业测试时长功能数据, 企业测试里程数据, 企业测试里程功能数据} = await getQycs();
let 企业测试里程分布data = {测试: {unit:'km', dataInfo: 企业测试里程数据}, 功能测试: {unit:'km', dataInfo: 企业测试里程功能数据}};
let 企业测试里程分布data = {测试: {unit:'公里', dataInfo: 企业测试里程数据}, 功能测试: {unit:'公里', dataInfo: 企业测试里程功能数据}};
ret["api3"] = getChartOutData("企业测试里程分布", 企业测试里程分布data);
let 企业测试时长分布data = {测试: {unit:'h', dataInfo: 企业测试时长数据}, 功能测试: {unit:'h', dataInfo: 企业测试时长功能数据}};
let 企业测试时长分布data = {测试: {unit:'小时', dataInfo: 企业测试时长数据}, 功能测试: {unit:'小时', dataInfo: 企业测试时长功能数据}};
ret["api4"] = getChartOutData("企业测试时长分布", 企业测试时长分布data);
res.send(ret);
......@@ -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 基础数据data = {
"摄像机": cameraCount,
"激光雷达":laserRadarCount,
"毫米波雷达":mmwCount,
"RSU":rsuCount,
"MEC":mecCount,
"SiBox":siboxCount,
"摄像机": cameraCount + "台",
"激光雷达":laserRadarCount + "台",
"毫米波雷达":mmwCount + "台",
"RSU":rsuCount + "台",
"MEC":mecCount + "台",
"SiBox":siboxCount + "台",
};
ret["base"] = getKeyValueNumberOutData("基础数据右", 基础数据data );
let roadData = {
"车路协同建设里程":roadMileage,
"智慧路口数":smartIntersectionCount,
"全息路口数":holographicIntersectionCount
"车路协同建设里程":roadMileage + "公里",
"智慧路口数":smartIntersectionCount + "个",
"全息路口数":holographicIntersectionCount + "个"
};
ret["roadBase"] = getKeyValueNumberOutData("基础数据左", roadData );
......@@ -165,7 +165,7 @@ export async function carInfo(req, res) {
vin:carInfo.vin,
vehicleType:carInfo.vehicleType,
type:"自动驾驶",
velocity:"45km/h"
velocity:"45公里/小时"
}
let endTime = moment().format("YYYY-MM-DD hh:mm:ss");
......@@ -177,13 +177,13 @@ export async function carInfo(req, res) {
testData.monthlyTestStatusList.forEach(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;
测试里程.push( {key, value: mileage});
功能测试里程.push( { key, value:autoMileage} );
});
let 月度测试时长分布data = {测试里程: {unit:'h', dataInfo: 测试里程}, 功能测试里程: {unit:'h', dataInfo: 功能测试里程}};
let 月度测试时长分布data = {测试里程: {unit:'公里', dataInfo: 测试里程}, 功能测试里程: {unit:'公里', dataInfo: 功能测试里程}};
ret["lcbhqs"] = getChartOutData("里程变化趋势", 月度测试时长分布data);
//获取小车信息
......@@ -201,15 +201,39 @@ export async function carInfo(req, res) {
let { alertDuration, alertType, positionTime, velocity } = item;
let alertDurationStr = `${alertDuration}`;
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"] = {
mileage:"422km",
duration:"21h",
allMileage:"1222km",
allDuration:"5666h"
mileage:今日里程,
duration:今日时长,
allMileage:累计里程, //累计里程
allDuration:累计时长
}
ret["clwgqk"] = {
......
......@@ -23,4 +23,26 @@ export function get大事记() {
}
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() {
//企业脱离自动驾驶比率
export async function getQytlzdjs() {
// "企业历史脱离率统计接口";
let startTime = moment().format("YYYY-MM") + "-01";
let endTime = moment().format('YYYY-MM-DD');
let startTime = moment().subtract(1, 'months').startOf('month').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 { enterpriseExitList } = data;
......
......@@ -12,11 +12,11 @@ export async function getInterfaceData() {
let jcsjData = [
{key: "测试企业数", value: totalEnterprise + "家"},
{key: "企业牌照数", value: totalVehicle + ""},
{key: "测试总里程", value: mileage + "km"},
{key: "测试总时长", value: duration + "h"},
{key: "功能测试总里程", value: autoMileage + "km"},
{key: "功能测试总时长", value: autoDuration + "h"}
{key: "企业牌照数", value: totalVehicle + ""},
{key: "测试总里程", value: mileage + "公里"},
{key: "测试总时长", value: duration + "小时"},
{key: "功能测试总里程", value: autoMileage + "公里"},
{key: "功能测试总时长", value: autoDuration + "小时"}
];
let cspzData = {};
......@@ -34,9 +34,9 @@ export async function getJrsj() {
let {autoDuration, autoMileage, duration, mileage} = data;
let 今日数据 = {"在线车辆数": ""}
let 今日测试 = { "里程": mileage + 'km', "时长": duration + 'h'};
let 今日测试 = { "里程": mileage + '公里', "时长": duration + '小时'};
let 今日功能测试 = { "里程": autoMileage + 'km', "时长": autoDuration + 'h'};
let 今日功能测试 = { "里程": autoMileage + '公里', "时长": autoDuration + '小时'};
return {今日数据, 今日测试, 今日功能测试};
}
import { separateDataAndUint } from "../../cal/privateTools";
import { ERRORENUM } from "../../config/errorEnum";
import { appConfig } from "../../config/serverConfig";
import { BizError } from "../../util/bizError";
......@@ -18,17 +19,24 @@ 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 {dataNum, dataUnit} = separateDataAndUint(cpu);
// 计算云资源 = {
// "cpu":cpu + "核",
// "内存":mem + "G",
// "本地磁盘":localDisk + "G",
// "云磁盘总量":cloudDisk + "G"
// };
计算云资源 = {
"cpu":cpu,
"cpu":dataNum + "核",
"内存":mem,
"本地磁盘":localDisk,
"云磁盘总量":cloudDisk
};
物理资源 = {
"物理机":server,
"网络设备":network,
"安全设备":security,
"机柜":rack
"物理机":server + "台",
"网络设备":network + "台",
"安全设备":security + "台",
"机柜":rack + "个"
};
}
......
......@@ -4,6 +4,8 @@ import { broadcastMsg } from "../../biz/jgfwnl/wsData";
import { appConfig } from "../../config/serverConfig";
import { logConsole, logHandle } from "../../util/log";
export let vehicleLocData = [];
//连接锁
let lockReconnect = false;
......@@ -101,7 +103,8 @@ export function stats(data) {
let dataJson = JSON.parse(data);
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);
// broadcastMsg({lng:longitude||0.0, lat:latitude||0.0, vin, vehicleid:vehicleId});
//加入到缓存
......
......@@ -4,6 +4,7 @@ import * as asyncHandler from 'express-async-handler'
import * as jgfwnlBiz from '../biz/jgfwnl/data';
import * as controlBiz from '../biz/control';
import * as dsjBiz from '../biz/dsj';
import * as cxstbjBiz from '../biz/cxstbj';
export function setRouter(httpServer){
//新版本
......@@ -13,6 +14,7 @@ export function setRouter(httpServer){
httpServer.get('/mapdata', asyncHandler(jgfwnlBiz.mapData));
httpServer.post('/carinfo', asyncHandler(jgfwnlBiz.carInfo));
httpServer.get('/dsj', asyncHandler(dsjBiz.getData));
httpServer.get('/cxstbj', asyncHandler(cxstbjBiz.getData));
//控制端小车列表接口
httpServer.get('/carlist', asyncHandler(controlBiz.controlGetCarList));
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