wangrong
2026-10-08 b36884c1fedec5391aaaa5e862b34b5a5debae54
修改计算车辆行驶距离和时间的判断规则
1个文件已修改
19 ■■■■■ 已修改文件
src/modules/report/service/taskservicevehicle.ts 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/modules/report/service/taskservicevehicle.ts
@@ -27,11 +27,12 @@
        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;
@@ -85,7 +86,8 @@
                HOUR_STARTWORK,
                HOUR_OFFWORK,
                THRESHOLD_MOVING,
                THRESHOLD_SPEEDING
                THRESHOLD_SPEEDING,
                THRESHOLD_DISPLACEMENT
            );
            summariesToUpsert.push(summary);
        }
@@ -109,7 +111,8 @@
        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;
@@ -169,9 +172,15 @@
                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;