fleetmap-reports 1.0.308 → 1.0.309
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/activity-report.js +7 -12
- package/src/events-report.js +3 -6
- package/src/fuelconsumption-report.js +5 -10
- package/src/speeding-report.js +13 -18
package/package.json
CHANGED
package/src/activity-report.js
CHANGED
|
@@ -11,33 +11,28 @@ const traccar = require("./util/traccar")
|
|
|
11
11
|
const {isInsideTimetable, isPartialInsideTimetable} = require("./util/trips");
|
|
12
12
|
const trips = require("./util/trips");
|
|
13
13
|
|
|
14
|
-
let traccarInstance
|
|
15
|
-
let userData
|
|
16
|
-
|
|
17
14
|
const fileName = 'ActivityReport'
|
|
18
15
|
|
|
19
|
-
async function createActivityReport(from, to,
|
|
16
|
+
async function createActivityReport(from, to, userData, traccarInstance) {
|
|
20
17
|
console.log('Create ActivityReport')
|
|
21
|
-
traccarInstance = traccar
|
|
22
|
-
userData = reportUserData
|
|
23
18
|
const reportData = []
|
|
24
19
|
|
|
25
20
|
if(userData.byDriver){
|
|
26
|
-
const allData = await createActivityReportByDriver(from, to)
|
|
21
|
+
const allData = await createActivityReportByDriver(from, to, userData, traccarInstance)
|
|
27
22
|
reportData.push(allData)
|
|
28
23
|
}
|
|
29
24
|
else if(userData.byGroup){
|
|
30
|
-
const allData = await createActivityReportByGroup(from, to)
|
|
25
|
+
const allData = await createActivityReportByGroup(from, to, userData, traccarInstance)
|
|
31
26
|
reportData.push(...allData)
|
|
32
27
|
} else {
|
|
33
|
-
const allData = await createActivityReportByDevice(from, to)
|
|
28
|
+
const allData = await createActivityReportByDevice(from, to, userData, traccarInstance)
|
|
34
29
|
reportData.push(allData)
|
|
35
30
|
}
|
|
36
31
|
|
|
37
32
|
return reportData
|
|
38
33
|
}
|
|
39
34
|
|
|
40
|
-
async function createActivityReportByGroup(from, to){
|
|
35
|
+
async function createActivityReportByGroup(from, to, userData, traccarInstance){
|
|
41
36
|
console.log("ByGroup")
|
|
42
37
|
const reportData = []
|
|
43
38
|
for (const g of userData.groups) {
|
|
@@ -76,7 +71,7 @@ async function createActivityReportByGroup(from, to){
|
|
|
76
71
|
return reportData
|
|
77
72
|
}
|
|
78
73
|
|
|
79
|
-
async function createActivityReportByDevice(from, to){
|
|
74
|
+
async function createActivityReportByDevice(from, to, userData, traccarInstance){
|
|
80
75
|
const groupIds = userData.groups.map(g => g.id)
|
|
81
76
|
const devicesToProcess = userData.byGroup ? userData.devices.filter(d => !groupIds.includes(d.groupId)) : userData.devices
|
|
82
77
|
|
|
@@ -127,7 +122,7 @@ async function createActivityReportByDevice(from, to){
|
|
|
127
122
|
return allData
|
|
128
123
|
}
|
|
129
124
|
|
|
130
|
-
async function createActivityReportByDriver(from, to){
|
|
125
|
+
async function createActivityReportByDriver(from, to, userData, traccarInstance){
|
|
131
126
|
const devices = await drivers.devicesByDriver(traccarInstance, from, to, userData.drivers, userData.devices)
|
|
132
127
|
|
|
133
128
|
let tripsData = []
|
package/src/events-report.js
CHANGED
|
@@ -9,10 +9,7 @@ const {convertToLocaleString} = require("./util/utils");
|
|
|
9
9
|
|
|
10
10
|
const fileName = 'EventReport'
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
async function createEventsReport(from, to, userData, traccarInstance) {
|
|
15
|
-
traccar = traccarInstance
|
|
12
|
+
async function createEventsReport(from, to, userData, traccar) {
|
|
16
13
|
console.log('Create EventsReport')
|
|
17
14
|
const reportData = []
|
|
18
15
|
|
|
@@ -45,7 +42,7 @@ async function createEventsReport(from, to, userData, traccarInstance) {
|
|
|
45
42
|
|
|
46
43
|
withoutGroupDevices.sort((a, b) => (a.name > b.name) ? 1 : -1)
|
|
47
44
|
|
|
48
|
-
const data = await getReportData(from, to, withoutGroupDevices, userData.eventTypes)
|
|
45
|
+
const data = await getReportData(from, to, withoutGroupDevices, userData.eventTypes, traccar)
|
|
49
46
|
|
|
50
47
|
if(data.length > 0) {
|
|
51
48
|
reportData.push({
|
|
@@ -57,7 +54,7 @@ async function createEventsReport(from, to, userData, traccarInstance) {
|
|
|
57
54
|
return reportData
|
|
58
55
|
}
|
|
59
56
|
|
|
60
|
-
async function getReportData(from, to, devices, types) {
|
|
57
|
+
async function getReportData(from, to, devices, types, traccar) {
|
|
61
58
|
let data = []
|
|
62
59
|
const arrayOfArrays = automaticReports.sliceArray(devices)
|
|
63
60
|
const traccarTypes = new Set(types.map(t => t.startsWith('alarm') ? 'alarm' : t))
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
const automaticReports = require("./automaticReports");
|
|
2
2
|
const refuelingReport = require("./refueling-report");
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
async function createFuelConsumptionReport(from, to, userData, traccarInstance) {
|
|
7
|
-
traccar = traccarInstance
|
|
4
|
+
async function createFuelConsumptionReport(from, to, userData, traccar) {
|
|
8
5
|
console.log('Create FuelConsumption Report')
|
|
9
6
|
|
|
10
7
|
const reportData = []
|
|
@@ -60,12 +57,10 @@ async function createFuelConsumptionReport(from, to, userData, traccarInstance)
|
|
|
60
57
|
const dayTrips = groupedTrips.get(key)
|
|
61
58
|
const dayRefueling = groupedRefuelings.get(key)
|
|
62
59
|
const distance = dayTrips.reduce((a, b) => a + b.distance, 0)
|
|
63
|
-
let spentFuel =
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
spentFuel = automaticReports.calculateSpentFuel(dayTrips.reduce((a, b) => a + b.spentFuel, 0), d)
|
|
68
|
-
}
|
|
60
|
+
let spentFuel = d.attributes.xpert ?
|
|
61
|
+
automaticReports.calculateXpertSpentFuel(key, positions)
|
|
62
|
+
:
|
|
63
|
+
automaticReports.calculateSpentFuel(dayTrips.reduce((a, b) => a + b.spentFuel, 0), d)
|
|
69
64
|
|
|
70
65
|
const day = {
|
|
71
66
|
date: key,
|
package/src/speeding-report.js
CHANGED
|
@@ -10,38 +10,33 @@ const drivers = require("./util/driver")
|
|
|
10
10
|
const {distance, point} = require('turf')
|
|
11
11
|
const here = require('./here')
|
|
12
12
|
const {getUserPartner} = require("fleetmap-partners");
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
let traccarInstance
|
|
16
|
-
let userData
|
|
13
|
+
const traccarHelper = require("./util/traccar");
|
|
17
14
|
|
|
18
15
|
const fileName = 'SpeedingReport'
|
|
19
16
|
const eventTypes = ['deviceOverspeed']
|
|
20
17
|
|
|
21
|
-
async function createSpeedingReport(from, to,
|
|
22
|
-
traccarInstance = traccar
|
|
23
|
-
userData = reportUserData
|
|
18
|
+
async function createSpeedingReport(from, to, userData, traccarInstance) {
|
|
24
19
|
const reportData = []
|
|
25
20
|
|
|
26
21
|
if (userData.byDriver) {
|
|
27
22
|
console.log("ByDriver")
|
|
28
|
-
const allData = await createSpeedingReportByDriver(from, to)
|
|
23
|
+
const allData = await createSpeedingReportByDriver(from, to, userData, traccarInstance)
|
|
29
24
|
reportData.push(allData)
|
|
30
25
|
}
|
|
31
26
|
else if (userData.byGroup) {
|
|
32
27
|
console.log("ByGroup")
|
|
33
|
-
const allData = await createSpeedingReportByGroup(from, to)
|
|
28
|
+
const allData = await createSpeedingReportByGroup(from, to, userData, traccarInstance)
|
|
34
29
|
reportData.push(...allData)
|
|
35
30
|
} else {
|
|
36
31
|
console.log("createSpeedingReportByDevice")
|
|
37
|
-
const allData = await createSpeedingReportByDevice(from, to, userData.devices)
|
|
32
|
+
const allData = await createSpeedingReportByDevice(from, to, userData.devices, userData, traccarInstance)
|
|
38
33
|
reportData.push(allData)
|
|
39
34
|
}
|
|
40
35
|
|
|
41
36
|
return reportData
|
|
42
37
|
}
|
|
43
38
|
|
|
44
|
-
async function createSpeedingReportByGroup(from, to){
|
|
39
|
+
async function createSpeedingReportByGroup(from, to, userData, traccarInstance){
|
|
45
40
|
const reportData = []
|
|
46
41
|
for (const g of userData.groups) {
|
|
47
42
|
const devices = userData.devices.filter(d => d.groupId === g.id)
|
|
@@ -53,8 +48,8 @@ async function createSpeedingReportByGroup(from, to){
|
|
|
53
48
|
xpert: devices.filter(d => d.attributes.xpert).length > 0
|
|
54
49
|
}
|
|
55
50
|
|
|
56
|
-
const events = await
|
|
57
|
-
const routes = await
|
|
51
|
+
const events = await traccarHelper.getEvents(traccarInstance, from, to, devices, eventTypes)
|
|
52
|
+
const routes = await traccarHelper.getRoute(traccarInstance, from, to, devices)
|
|
58
53
|
|
|
59
54
|
devices.sort((a, b) => (a.name > b.name) ? 1 : -1)
|
|
60
55
|
|
|
@@ -74,15 +69,15 @@ async function createSpeedingReportByGroup(from, to){
|
|
|
74
69
|
return reportData
|
|
75
70
|
}
|
|
76
71
|
|
|
77
|
-
async function createSpeedingReportByDevice(from, to, devices) {
|
|
72
|
+
async function createSpeedingReportByDevice(from, to, devices, userData, traccarInstance) {
|
|
78
73
|
devices.sort((a, b) => (a.name > b.name) ? 1 : -1)
|
|
79
74
|
|
|
80
|
-
const routes = await
|
|
75
|
+
const routes = await traccarHelper.getRoute(traccarInstance, from, to, devices)
|
|
81
76
|
const events = []
|
|
82
77
|
if(!userData.useVehicleSpeedLimit && userData.customSpeed){
|
|
83
78
|
events.push(...await getCustomSpeedLimitEvents(devices, routes))
|
|
84
79
|
} else {
|
|
85
|
-
events.push(...await
|
|
80
|
+
events.push(...await traccarHelper.getEvents(traccarInstance, from, to, devices, eventTypes))
|
|
86
81
|
}
|
|
87
82
|
|
|
88
83
|
if(userData.roadSpeedLimits){
|
|
@@ -109,12 +104,12 @@ async function createSpeedingReportByDriver(from, to) {
|
|
|
109
104
|
return { drivers: [] }
|
|
110
105
|
}
|
|
111
106
|
|
|
112
|
-
const routes = await
|
|
107
|
+
const routes = await traccarHelper.getRoute(traccarInstance, from, to, devices)
|
|
113
108
|
const events = []
|
|
114
109
|
if(!userData.useVehicleSpeedLimit && userData.customSpeed){
|
|
115
110
|
events.push(...await getCustomSpeedLimitEvents(devices, routes))
|
|
116
111
|
} else {
|
|
117
|
-
events.push(...await
|
|
112
|
+
events.push(...await traccarHelper.getEvents(traccarInstance, from, to, devices, eventTypes))
|
|
118
113
|
}
|
|
119
114
|
|
|
120
115
|
if(userData.roadSpeedLimits){
|