| | |
| | | let HOUR_OFFWORK = parseInt(await this.baseSysParamService.dataByKey('vehicle.hour.offwork')); //'22'; |
| | | let THRESHOLD_MOVING = parseInt(await this.baseSysParamService.dataByKey('vehicle.speed.threshold.moving')); //'2.0 km/h'; |
| | | let THRESHOLD_SPEEDING = parseInt(await this.baseSysParamService.dataByKey('vehicle.speed.threshold.speeding')); //'30 km/h'; |
| | | |
| | | let THRESHOLD_DISPLACEMENT = parseInt(await this.baseSysParamService.dataByKey('vehicle.threshold.displacement')); //'30 km/h'; |
| | | HOUR_STARTWORK = Number.isNaN(HOUR_STARTWORK) ? 6 : HOUR_STARTWORK; |
| | | HOUR_OFFWORK = Number.isNaN(HOUR_OFFWORK) ? 22 : HOUR_OFFWORK; |
| | | THRESHOLD_MOVING = Number.isNaN(THRESHOLD_MOVING) ? 2 : THRESHOLD_MOVING; |
| | | THRESHOLD_SPEEDING = Number.isNaN(THRESHOLD_SPEEDING) ? 30 : THRESHOLD_SPEEDING; |
| | | THRESHOLD_DISPLACEMENT = Number.isNaN(THRESHOLD_DISPLACEMENT) ? 10 : THRESHOLD_DISPLACEMENT; |
| | | |
| | | |
| | | |
| | |
| | | HOUR_STARTWORK, |
| | | HOUR_OFFWORK, |
| | | THRESHOLD_MOVING, |
| | | THRESHOLD_SPEEDING |
| | | THRESHOLD_SPEEDING, |
| | | THRESHOLD_DISPLACEMENT |
| | | ); |
| | | summariesToUpsert.push(summary); |
| | | } |
| | |
| | | HOUR_STARTWORK: number, |
| | | HOUR_OFFWORK: number, |
| | | HHRESHOLD_MOVING: number, |
| | | THRESHOLD_SPEEDING: number |
| | | THRESHOLD_SPEEDING: number, |
| | | THRESHOLD_DISPLACEMENT: number |
| | | ): Partial<ReportDailyVehicleEntity> { |
| | | const departmentId = points[0]?.departmentId ?? null; |
| | | |
| | |
| | | if (timeDiffSec > 0 && timeDiffSec <= 120) { |
| | | |
| | | // ================================================ |
| | | // 顺序 3:基于速度划分为【行驶】或【静止停靠】 |
| | | // 顺序 3:基于坐标位移划分为【行驶】或【静止停靠】 |
| | | // ================================================ |
| | | if (speed > HHRESHOLD_MOVING) { |
| | | const distance = this.getHaversineDistance( |
| | | Number(prev.latitude), |
| | | Number(prev.longitude), |
| | | Number(curr.latitude), |
| | | Number(curr.longitude), |
| | | ); |
| | | if (distance > THRESHOLD_DISPLACEMENT) { |
| | | // 3.1 累加纯行驶时长 |
| | | secondsMoving += timeDiffSec; |
| | | |