Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
motorCity
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
node_server
motorCity
Commits
3ece0f4a
Commit
3ece0f4a
authored
Aug 15, 2022
by
孙香冬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
9c9a7fa9
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
318 additions
and
45 deletions
+318
-45
AutoX.png
images/img/新建文件夹/AutoX.png
+0
-0
上汽大众.png
images/img/新建文件夹/上汽大众.png
+0
-0
上汽大通汽车有限公司.png
images/img/新建文件夹/上汽大通汽车有限公司.png
+0
-0
上汽通用.png
images/img/新建文件夹/上汽通用.png
+0
-0
上海依行机器人科技有限公司.png
images/img/新建文件夹/上海依行机器人科技有限公司.png
+0
-0
中智行.png
images/img/新建文件夹/中智行.png
+0
-0
中车时代电动.png
images/img/新建文件夹/中车时代电动.png
+0
-0
丰田.png
images/img/新建文件夹/丰田.png
+0
-0
仙途.png
images/img/新建文件夹/仙途.png
+0
-0
华为.png
images/img/新建文件夹/华为.png
+0
-0
商汤.png
images/img/新建文件夹/商汤.png
+0
-0
宝马.png
images/img/新建文件夹/宝马.png
+0
-0
深兰.png
images/img/新建文件夹/深兰.png
+0
-0
滴滴.png
images/img/新建文件夹/滴滴.png
+0
-0
百度.png
images/img/新建文件夹/百度.png
+0
-0
通用中国.png
images/img/新建文件夹/通用中国.png
+0
-0
阿利昂斯.png
images/img/新建文件夹/阿利昂斯.png
+0
-0
data.ts
src/biz/jgfwnl/data.ts
+45
-21
serverConfig.ts
src/config/serverConfig.ts
+1
-1
hardwareData.ts
src/data/interface/hardwareData.ts
+15
-18
interfaceService.ts
src/data/interface/interfaceService.ts
+245
-2
wsData.ts
src/data/interface/wsData.ts
+3
-2
main.ts
src/main.ts
+9
-1
No files found.
images/img/AutoX.png
→
images/img/
新建文件夹/
AutoX.png
View file @
3ece0f4a
File moved
images/img/上汽大众.png
→
images/img/
新建文件夹/
上汽大众.png
View file @
3ece0f4a
File moved
images/img/
上汽大通
.png
→
images/img/
新建文件夹/上汽大通汽车有限公司
.png
View file @
3ece0f4a
File moved
images/img/上汽通用.png
→
images/img/
新建文件夹/
上汽通用.png
View file @
3ece0f4a
File moved
images/img/
依行科技
.png
→
images/img/
新建文件夹/上海依行机器人科技有限公司
.png
View file @
3ece0f4a
File moved
images/img/中智行.png
→
images/img/
新建文件夹/
中智行.png
View file @
3ece0f4a
File moved
images/img/
中车
.png
→
images/img/
新建文件夹/中车时代电动
.png
View file @
3ece0f4a
File moved
images/img/丰田.png
→
images/img/
新建文件夹/
丰田.png
View file @
3ece0f4a
File moved
images/img/
仙途智能
.png
→
images/img/
新建文件夹/仙途
.png
View file @
3ece0f4a
File moved
images/img/华为.png
→
images/img/
新建文件夹/
华为.png
View file @
3ece0f4a
File moved
images/img/商汤.png
→
images/img/
新建文件夹/
商汤.png
View file @
3ece0f4a
File moved
images/img/宝马.png
→
images/img/
新建文件夹/
宝马.png
View file @
3ece0f4a
File moved
images/img/深兰.png
→
images/img/
新建文件夹/
深兰.png
View file @
3ece0f4a
File moved
images/img/滴滴.png
→
images/img/
新建文件夹/
滴滴.png
View file @
3ece0f4a
File moved
images/img/百度.png
→
images/img/
新建文件夹/
百度.png
View file @
3ece0f4a
File moved
images/img/通用中国.png
→
images/img/
新建文件夹/
通用中国.png
View file @
3ece0f4a
File moved
images/img/阿利昂斯.png
→
images/img/
新建文件夹/
阿利昂斯.png
View file @
3ece0f4a
File moved
src/biz/jgfwnl/data.ts
View file @
3ece0f4a
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
=
[
...
...
src/config/serverConfig.ts
View file @
3ece0f4a
...
...
@@ -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
])
||
3000
1
;
//如果xml里面没有配置 就会使用到这里的端口
export
let
port
=
Number
(
process
.
env
.
PORT
)
||
Number
(
process
.
argv
[
3
])
||
3000
2
;
//如果xml里面没有配置 就会使用到这里的端口
export
let
dbConfig
;
...
...
src/data/interface/hardwareData.ts
View file @
3ece0f4a
...
...
@@ -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
{
计算云资源
,
使用率
,
物理资源
};
}
src/data/interface/interfaceService.ts
View file @
3ece0f4a
...
...
@@ -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个月以外的数据
...
...
src/data/interface/wsData.ts
View file @
3ece0f4a
...
...
@@ -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
src/main.ts
View file @
3ece0f4a
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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment