fleetmap-reports 1.0.646 → 1.0.648
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/idle-report.js +1 -7
- package/src/stop-report.js +3 -1
- package/src/util/geofence.js +6 -0
- package/src/util/utils.js +8 -0
- package/src/zone-report.js +5 -1
package/package.json
CHANGED
package/src/idle-report.js
CHANGED
|
@@ -8,7 +8,7 @@ const automaticReports = require('./automaticReports')
|
|
|
8
8
|
const traccarHelper = require('./util/traccar')
|
|
9
9
|
const { getIdleEvents } = require('./util/route')
|
|
10
10
|
const { reportByDriver } = require('./util/driver')
|
|
11
|
-
const { getNearestPOIs, insideGeofence } = require('./util/geofence')
|
|
11
|
+
const { getNearestPOIs, insideGeofence, loadGroupsData } = require('./util/geofence')
|
|
12
12
|
|
|
13
13
|
const fileName = 'IdleReport'
|
|
14
14
|
|
|
@@ -213,12 +213,6 @@ function findGeofenceData (event, userData) {
|
|
|
213
213
|
}
|
|
214
214
|
}
|
|
215
215
|
|
|
216
|
-
async function loadGroupsData (userData, traccarInstance) {
|
|
217
|
-
for (const g of userData.groups) {
|
|
218
|
-
g.geofenceIds = (await traccarInstance.geofences.geofencesGet(undefined, undefined, undefined, g.id, undefined, undefined).then(r => r.data)).map(g => g.id)
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
|
|
222
216
|
async function exportIdleReportToPDF (userData, reportData) {
|
|
223
217
|
console.log('Export to PDF')
|
|
224
218
|
|
package/src/stop-report.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const { devicesToProcess, deviceName } = require('./util/device')
|
|
2
2
|
const automaticReports = require('./automaticReports')
|
|
3
3
|
const traccarHelper = require('./util/traccar')
|
|
4
|
-
const { getNearestPOIs, insideGeofence } = require('./util/geofence')
|
|
4
|
+
const { getNearestPOIs, insideGeofence, loadGroupsData } = require('./util/geofence')
|
|
5
5
|
const { getTranslations, convertToLocaleString, convertMS, convertToLocaleDateString, convertToLocaleTimeString } = require('./util/utils')
|
|
6
6
|
const jsPDF = require('jspdf')
|
|
7
7
|
const { headerFromUser, addTable } = require('./util/pdfDocument')
|
|
@@ -27,6 +27,8 @@ async function createStopReportByDevice (from, to, userData, traccar) {
|
|
|
27
27
|
devices: []
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
+
await loadGroupsData(userData, traccar)
|
|
31
|
+
|
|
30
32
|
const sliced = automaticReports.sliceArray(devices, 5)
|
|
31
33
|
|
|
32
34
|
let deviceCount = 0
|
package/src/util/geofence.js
CHANGED
|
@@ -26,3 +26,9 @@ exports.getNearestPOIs = function getNearestPOIs (long, lat, geofences) {
|
|
|
26
26
|
})
|
|
27
27
|
return distance.filter(a => a.distance < 100).sort((a, b) => (a.distance > b.distance) ? 1 : -1)
|
|
28
28
|
}
|
|
29
|
+
|
|
30
|
+
exports.loadGroupsData = async function loadGroupsData (userData, traccarInstance) {
|
|
31
|
+
for (const g of userData.groups) {
|
|
32
|
+
g.geofenceIds = (await traccarInstance.geofences.geofencesGet(undefined, undefined, undefined, g.id, undefined, undefined).then(r => r.data)).map(g => g.id)
|
|
33
|
+
}
|
|
34
|
+
}
|
package/src/util/utils.js
CHANGED
|
@@ -234,3 +234,11 @@ exports.getLogo = (user) => {
|
|
|
234
234
|
}
|
|
235
235
|
exports.convertToFeature = convertToFeature
|
|
236
236
|
exports.convertPositionToFeature = convertPositionToFeature
|
|
237
|
+
exports.calculateDistance = (positions) => {
|
|
238
|
+
return positions.map(p => [p.longitude, p.latitude])
|
|
239
|
+
.reduce((previousValue, currentValue, currentIndex, array) => {
|
|
240
|
+
return currentIndex < array.length - 1
|
|
241
|
+
? previousValue + distance.default(currentValue, array[currentIndex + 1])
|
|
242
|
+
: previousValue
|
|
243
|
+
}, 0) || 0
|
|
244
|
+
}
|
package/src/zone-report.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
const moment = require('moment')
|
|
2
2
|
const automaticReports = require('./automaticReports')
|
|
3
|
-
const {
|
|
3
|
+
const {
|
|
4
|
+
convertMS, convertToLocaleString, getTranslations, convertToFeature, convertPositionToFeature,
|
|
5
|
+
calculateDistance
|
|
6
|
+
} = require('./util/utils')
|
|
4
7
|
const jsPDF = require('jspdf')
|
|
5
8
|
require('jspdf-autotable')
|
|
6
9
|
const traccarHelper = require('./util/traccar')
|
|
@@ -113,6 +116,7 @@ async function processDevices (from, to, devices, userData, data) {
|
|
|
113
116
|
inTime: zoneInData[a.geofenceId].position,
|
|
114
117
|
outTime: a.position,
|
|
115
118
|
totalTime: totalInTime,
|
|
119
|
+
distance: calculateDistance(route),
|
|
116
120
|
geofenceName: geofence.name,
|
|
117
121
|
stopped: route.filter(p => !p.attributes.ignition).length > 0,
|
|
118
122
|
driverName: zoneInData[a.geofenceId].position.driverName
|