From b36884c1fedec5391aaaa5e862b34b5a5debae54 Mon Sep 17 00:00:00 2001
From: wangrong <wangrong@shsening.com>
Date: 星期四, 08 十月 2026 10:36:04 +0800
Subject: [PATCH] 修改计算车辆行驶距离和时间的判断规则
---
src/modules/report/service/taskservicevehicle.ts | 19 ++++++++++++++-----
1 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/src/modules/report/service/taskservicevehicle.ts b/src/modules/report/service/taskservicevehicle.ts
index 22405df..7d392c0 100644
--- a/src/modules/report/service/taskservicevehicle.ts
+++ b/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;
--
Gitblit v1.9.1