update
This commit is contained in:
@ -24,7 +24,17 @@ async function commitMessage(now, logDevice) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const vhc = await VhcModels.getVhcByDeviceId(logDevice.device_id)
|
const vhc = await VhcModels.getVhcByDeviceId(logDevice.device_id)
|
||||||
const lastTrack = await GpsTracksModels.get2LastLocByDeviceId(logDevice.device_id)
|
// const lastTrack = await GpsTracksModels.get2LastLocByDeviceId(logDevice.device_id)
|
||||||
|
let lastTrack
|
||||||
|
if (vhc.length > 0)
|
||||||
|
lastTrack = await GpsTracksModels.get2LastLocByVhcId(vhc[0].vid)
|
||||||
|
else
|
||||||
|
lastTrack = await GpsTracksModels.get2LastLocByDeviceId(
|
||||||
|
logDevice.device_id,
|
||||||
|
)
|
||||||
|
|
||||||
|
if (logDevice.device_id == "0353742374791143")
|
||||||
|
console.log("vhc", vhc, lastTrack)
|
||||||
|
|
||||||
if (["heartbeat", "alarm"].includes(logDevice.action)) {
|
if (["heartbeat", "alarm"].includes(logDevice.action)) {
|
||||||
if (logDevice.ignition == GpsTracksModels.STTS_IGNITION_HIGH) {
|
if (logDevice.ignition == GpsTracksModels.STTS_IGNITION_HIGH) {
|
||||||
@ -32,13 +42,15 @@ async function commitMessage(now, logDevice) {
|
|||||||
logDevice.stts_engine = GpsTracksModels.STTS_EN_MOVING
|
logDevice.stts_engine = GpsTracksModels.STTS_EN_MOVING
|
||||||
} else {
|
} else {
|
||||||
if (lastTrack.length > 0) {
|
if (lastTrack.length > 0) {
|
||||||
const checkLastHeartbeat = await GpsTracksModels.getLastHeartbeatToDeterminIdling(
|
const checkLastHeartbeat =
|
||||||
|
await GpsTracksModels.getLastHeartbeatToDeterminIdling(
|
||||||
logDevice.device_id,
|
logDevice.device_id,
|
||||||
lastTrack[0].crt,
|
lastTrack[0].crt,
|
||||||
now
|
now,
|
||||||
)
|
)
|
||||||
if (checkLastHeartbeat.length >= 3) {
|
if (checkLastHeartbeat.length >= 3) {
|
||||||
logDevice.stts_engine = GpsTracksModels.STTS_EN_IDLING
|
logDevice.stts_engine =
|
||||||
|
GpsTracksModels.STTS_EN_IDLING
|
||||||
} else {
|
} else {
|
||||||
logDevice.stts_engine = lastTrack[0].stts_engine
|
logDevice.stts_engine = lastTrack[0].stts_engine
|
||||||
}
|
}
|
||||||
@ -51,12 +63,16 @@ async function commitMessage(now, logDevice) {
|
|||||||
|
|
||||||
if (["location"].includes(logDevice.action)) {
|
if (["location"].includes(logDevice.action)) {
|
||||||
// console.log(logDevice.device_id + " : 1")
|
// console.log(logDevice.device_id + " : 1")
|
||||||
const lastHeartbeatOrAlarm = await GpsTracksModels.get2LastHeartbeatOrAlarm(logDevice.device_id)
|
const lastHeartbeatOrAlarm =
|
||||||
|
await GpsTracksModels.get2LastHeartbeatOrAlarm(
|
||||||
|
logDevice.device_id,
|
||||||
|
)
|
||||||
if (lastHeartbeatOrAlarm.length > 0) {
|
if (lastHeartbeatOrAlarm.length > 0) {
|
||||||
logDevice.ignition = lastHeartbeatOrAlarm[0].ignition
|
logDevice.ignition = lastHeartbeatOrAlarm[0].ignition
|
||||||
logDevice.stts_gps = lastHeartbeatOrAlarm[0].stts_gps
|
logDevice.stts_gps = lastHeartbeatOrAlarm[0].stts_gps
|
||||||
logDevice.stts_gsm = lastHeartbeatOrAlarm[0].stts_gsm
|
logDevice.stts_gsm = lastHeartbeatOrAlarm[0].stts_gsm
|
||||||
logDevice.stts_oil_electricity = lastHeartbeatOrAlarm[0].stts_oil_electricity
|
logDevice.stts_oil_electricity =
|
||||||
|
lastHeartbeatOrAlarm[0].stts_oil_electricity
|
||||||
logDevice.stts_alarm = lastHeartbeatOrAlarm[0].stts_alarm
|
logDevice.stts_alarm = lastHeartbeatOrAlarm[0].stts_alarm
|
||||||
logDevice.stts_charge = lastHeartbeatOrAlarm[0].stts_charge
|
logDevice.stts_charge = lastHeartbeatOrAlarm[0].stts_charge
|
||||||
logDevice.stts_acc = lastHeartbeatOrAlarm[0].stts_acc
|
logDevice.stts_acc = lastHeartbeatOrAlarm[0].stts_acc
|
||||||
@ -66,7 +82,8 @@ async function commitMessage(now, logDevice) {
|
|||||||
logDevice.ignition = logDevice.ignition || 0
|
logDevice.ignition = logDevice.ignition || 0
|
||||||
logDevice.stts_gps = logDevice.stts_gps || 0
|
logDevice.stts_gps = logDevice.stts_gps || 0
|
||||||
logDevice.stts_gsm = logDevice.stts_gsm || 0
|
logDevice.stts_gsm = logDevice.stts_gsm || 0
|
||||||
logDevice.stts_oil_electricity = logDevice.stts_oil_electricity || 0
|
logDevice.stts_oil_electricity =
|
||||||
|
logDevice.stts_oil_electricity || 0
|
||||||
logDevice.stts_alarm = logDevice.stts_alarm || 0
|
logDevice.stts_alarm = logDevice.stts_alarm || 0
|
||||||
logDevice.stts_charge = logDevice.stts_charge || 0
|
logDevice.stts_charge = logDevice.stts_charge || 0
|
||||||
logDevice.stts_acc = logDevice.stts_acc || 0
|
logDevice.stts_acc = logDevice.stts_acc || 0
|
||||||
@ -79,13 +96,15 @@ async function commitMessage(now, logDevice) {
|
|||||||
logDevice.stts_engine = GpsTracksModels.STTS_EN_MOVING
|
logDevice.stts_engine = GpsTracksModels.STTS_EN_MOVING
|
||||||
} else {
|
} else {
|
||||||
if (lastTrack.length > 0) {
|
if (lastTrack.length > 0) {
|
||||||
const checkLastHeartbeat = await GpsTracksModels.getLastHeartbeatToDeterminIdling(
|
const checkLastHeartbeat =
|
||||||
|
await GpsTracksModels.getLastHeartbeatToDeterminIdling(
|
||||||
logDevice.device_id,
|
logDevice.device_id,
|
||||||
lastTrack[0].crt,
|
lastTrack[0].crt,
|
||||||
now
|
now,
|
||||||
)
|
)
|
||||||
if (checkLastHeartbeat.length >= 3) {
|
if (checkLastHeartbeat.length >= 3) {
|
||||||
logDevice.stts_engine = GpsTracksModels.STTS_EN_IDLING
|
logDevice.stts_engine =
|
||||||
|
GpsTracksModels.STTS_EN_IDLING
|
||||||
} else {
|
} else {
|
||||||
logDevice.stts_engine = lastTrack[0].stts_engine
|
logDevice.stts_engine = lastTrack[0].stts_engine
|
||||||
}
|
}
|
||||||
@ -95,7 +114,8 @@ async function commitMessage(now, logDevice) {
|
|||||||
} else {
|
} else {
|
||||||
logDevice.stts_engine = GpsTracksModels.STTS_EN_STOPING
|
logDevice.stts_engine = GpsTracksModels.STTS_EN_STOPING
|
||||||
}
|
}
|
||||||
logDevice.stts_oil_electricity = lastHeartbeatOrAlarm[0]?.stts_oil_electricity || 0
|
logDevice.stts_oil_electricity =
|
||||||
|
lastHeartbeatOrAlarm[0]?.stts_oil_electricity || 0
|
||||||
logDevice.stts_alarm = lastHeartbeatOrAlarm[0]?.stts_alarm || 0
|
logDevice.stts_alarm = lastHeartbeatOrAlarm[0]?.stts_alarm || 0
|
||||||
logDevice.stts_charge = lastHeartbeatOrAlarm[0]?.stts_charge || 0
|
logDevice.stts_charge = lastHeartbeatOrAlarm[0]?.stts_charge || 0
|
||||||
logDevice.stts_acc = lastHeartbeatOrAlarm[0]?.stts_acc || 0
|
logDevice.stts_acc = lastHeartbeatOrAlarm[0]?.stts_acc || 0
|
||||||
@ -111,7 +131,8 @@ async function commitMessage(now, logDevice) {
|
|||||||
logDevice.speed = lastTrack[0].speed
|
logDevice.speed = lastTrack[0].speed
|
||||||
logDevice.orientation = lastTrack[0].orientation
|
logDevice.orientation = lastTrack[0].orientation
|
||||||
if (logDevice.latitude) {
|
if (logDevice.latitude) {
|
||||||
logDevice.stts_reverse_geo = GpsTracksModels.STTS_REVERSE_GEO_NOT
|
logDevice.stts_reverse_geo =
|
||||||
|
GpsTracksModels.STTS_REVERSE_GEO_NOT
|
||||||
}
|
}
|
||||||
|
|
||||||
logDevice.length_gps = lastTrack[0].length_gps
|
logDevice.length_gps = lastTrack[0].length_gps
|
||||||
@ -126,20 +147,28 @@ async function commitMessage(now, logDevice) {
|
|||||||
// logDevice.crt_d_format = lastTrack[0].crt_d_format;
|
// logDevice.crt_d_format = lastTrack[0].crt_d_format;
|
||||||
// jika pengen di munculin di last movement
|
// jika pengen di munculin di last movement
|
||||||
logDevice.crt = now
|
logDevice.crt = now
|
||||||
logDevice.crt_format = moment.unix(now).format("YYYY-MM-DD HH:mm:ss")
|
logDevice.crt_format = moment
|
||||||
|
.unix(now)
|
||||||
|
.format("YYYY-MM-DD HH:mm:ss")
|
||||||
logDevice.crt_d = now
|
logDevice.crt_d = now
|
||||||
logDevice.crt_d_format = moment.unix(now).format("YYYY-MM-DD HH:mm:ss")
|
logDevice.crt_d_format = moment
|
||||||
|
.unix(now)
|
||||||
|
.format("YYYY-MM-DD HH:mm:ss")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// count milleage
|
// count milleage
|
||||||
if (logDevice.latitude != null && logDevice.longitude != null && lastTrack.length > 0) {
|
if (
|
||||||
|
logDevice.latitude != null &&
|
||||||
|
logDevice.longitude != null &&
|
||||||
|
lastTrack.length > 0
|
||||||
|
) {
|
||||||
const distance = LibHelper.haversineGreatCircleDistance(
|
const distance = LibHelper.haversineGreatCircleDistance(
|
||||||
lastTrack[0].latitude,
|
lastTrack[0].latitude,
|
||||||
lastTrack[0].longitude,
|
lastTrack[0].longitude,
|
||||||
logDevice.latitude,
|
logDevice.latitude,
|
||||||
logDevice.longitude,
|
logDevice.longitude,
|
||||||
LibHelper.EARTH_RADIUS_KM
|
LibHelper.EARTH_RADIUS_KM,
|
||||||
)
|
)
|
||||||
const distance_km = LibHelper.kmToKm(distance, 100000000)
|
const distance_km = LibHelper.kmToKm(distance, 100000000)
|
||||||
// console.log(`GPS TRACKER UP LOCATION => device_id:${logDevice.device_id} vhc_id:${(vhc[0]) ? vhc[0].vid : 0}, distance_km:${distance_km}`);
|
// console.log(`GPS TRACKER UP LOCATION => device_id:${logDevice.device_id} vhc_id:${(vhc[0]) ? vhc[0].vid : 0}, distance_km:${distance_km}`);
|
||||||
@ -149,7 +178,9 @@ async function commitMessage(now, logDevice) {
|
|||||||
// return false
|
// return false
|
||||||
// }
|
// }
|
||||||
logDevice.pre_milleage = distance_km
|
logDevice.pre_milleage = distance_km
|
||||||
logDevice.sum_milleage = (lastTrack[0].sum_milleage + logDevice.pre_milleage).toFixed(8)
|
logDevice.sum_milleage = (
|
||||||
|
lastTrack[0].sum_milleage + logDevice.pre_milleage
|
||||||
|
).toFixed(8)
|
||||||
if (vhc.length > 0) {
|
if (vhc.length > 0) {
|
||||||
logDevice.vhc_id = vhc[0] ? vhc[0].vid : 0
|
logDevice.vhc_id = vhc[0] ? vhc[0].vid : 0
|
||||||
// if (lastTrack[0].vhc_id == logDevice.vhc_id) {
|
// if (lastTrack[0].vhc_id == logDevice.vhc_id) {
|
||||||
@ -163,9 +194,13 @@ async function commitMessage(now, logDevice) {
|
|||||||
// logDevice.vhc_milleage = ((vhc[0] ? vhc[0].sum_milleage : 0) + logDevice.pre_milleage).toFixed(8);
|
// logDevice.vhc_milleage = ((vhc[0] ? vhc[0].sum_milleage : 0) + logDevice.pre_milleage).toFixed(8);
|
||||||
// }
|
// }
|
||||||
// force mileage dari vechile
|
// force mileage dari vechile
|
||||||
logDevice.vhc_milleage = ((vhc[0]?.sum_milleage || 0) + logDevice.pre_milleage).toFixed(8)
|
logDevice.vhc_milleage = (
|
||||||
|
(vhc[0]?.sum_milleage || 0) + logDevice.pre_milleage
|
||||||
|
).toFixed(8)
|
||||||
|
|
||||||
VhcModels.update(vhc[0] ? vhc[0].vid : 0, { sum_milleage: logDevice.vhc_milleage })
|
VhcModels.update(vhc[0] ? vhc[0].vid : 0, {
|
||||||
|
sum_milleage: logDevice.vhc_milleage,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -173,10 +208,19 @@ async function commitMessage(now, logDevice) {
|
|||||||
if (logDevice.latitude != null && logDevice.longitude != null) {
|
if (logDevice.latitude != null && logDevice.longitude != null) {
|
||||||
// && vhc.length > 0
|
// && vhc.length > 0
|
||||||
// log tracking
|
// log tracking
|
||||||
const currTrack = await GpsTracksModels.bundleCreate2(logDevice, logDevice)
|
const currTrack = await GpsTracksModels.bundleCreate2(
|
||||||
|
logDevice,
|
||||||
|
logDevice,
|
||||||
|
)
|
||||||
// console.log('GT06 HAS LOCATION AND CHECK ZONE');
|
// console.log('GT06 HAS LOCATION AND CHECK ZONE');
|
||||||
const inCircle = await ZoneModels.getInCircle(logDevice.latitude, logDevice.longitude)
|
const inCircle = await ZoneModels.getInCircle(
|
||||||
const inShape = await ZoneModels.getInShape(logDevice.latitude, logDevice.longitude)
|
logDevice.latitude,
|
||||||
|
logDevice.longitude,
|
||||||
|
)
|
||||||
|
const inShape = await ZoneModels.getInShape(
|
||||||
|
logDevice.latitude,
|
||||||
|
logDevice.longitude,
|
||||||
|
)
|
||||||
const insideSpawnZone = []
|
const insideSpawnZone = []
|
||||||
for (let zone of inCircle) {
|
for (let zone of inCircle) {
|
||||||
insideSpawnZone.push(zone)
|
insideSpawnZone.push(zone)
|
||||||
@ -202,21 +246,31 @@ async function commitMessage(now, logDevice) {
|
|||||||
if (lastSpawn.length > 0) {
|
if (lastSpawn.length > 0) {
|
||||||
let is_leave_zone = 1
|
let is_leave_zone = 1
|
||||||
for (const insideZone of insideSpawnZone) {
|
for (const insideZone of insideSpawnZone) {
|
||||||
if (insideZone.zid === lastSpawn[0].zone_id) is_leave_zone = 0
|
if (insideZone.zid === lastSpawn[0].zone_id)
|
||||||
|
is_leave_zone = 0
|
||||||
}
|
}
|
||||||
if (is_leave_zone === 1 && lastSpawn[0].device_id == logDevice.device_id) {
|
if (
|
||||||
|
is_leave_zone === 1 &&
|
||||||
|
lastSpawn[0].device_id == logDevice.device_id
|
||||||
|
) {
|
||||||
GpsTracksModels.updt2SpawnZone(
|
GpsTracksModels.updt2SpawnZone(
|
||||||
{
|
{
|
||||||
leave_lat: logDevice.latitude,
|
leave_lat: logDevice.latitude,
|
||||||
leave_lng: logDevice.longitude,
|
leave_lng: logDevice.longitude,
|
||||||
leave_at_d: logDevice.crt_d || now,
|
leave_at_d: logDevice.crt_d || now,
|
||||||
leave_at_d_format: moment.unix(logDevice.crt_d || now).format("YYYY-MM-DD HH:mm:ss"),
|
leave_at_d_format: moment
|
||||||
|
.unix(logDevice.crt_d || now)
|
||||||
|
.format("YYYY-MM-DD HH:mm:ss"),
|
||||||
leave_at_s: now,
|
leave_at_s: now,
|
||||||
leave_at_s_format: moment.unix(now).format("YYYY-MM-DD HH:mm:ss"),
|
leave_at_s_format: moment
|
||||||
|
.unix(now)
|
||||||
|
.format("YYYY-MM-DD HH:mm:ss"),
|
||||||
updt: now,
|
updt: now,
|
||||||
updt_format: moment.unix(now).format("YYYY-MM-DD HH:mm:ss"),
|
updt_format: moment
|
||||||
|
.unix(now)
|
||||||
|
.format("YYYY-MM-DD HH:mm:ss"),
|
||||||
},
|
},
|
||||||
lastSpawn[0].id
|
lastSpawn[0].id,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -235,28 +289,38 @@ async function commitMessage(now, logDevice) {
|
|||||||
(vhc[0] ? vhc[0].nopol3 : 0 || ""),
|
(vhc[0] ? vhc[0].nopol3 : 0 || ""),
|
||||||
da_name: vhc[0] ? vhc[0].da_name : 0 || "",
|
da_name: vhc[0] ? vhc[0].da_name : 0 || "",
|
||||||
da_phone:
|
da_phone:
|
||||||
"+" + (vhc[0] ? vhc[0].da_phone_code : 0 || "") + (vhc[0] ? vhc[0].da_phone : 0 || ""),
|
"+" +
|
||||||
|
(vhc[0] ? vhc[0].da_phone_code : 0 || "") +
|
||||||
|
(vhc[0] ? vhc[0].da_phone : 0 || ""),
|
||||||
}
|
}
|
||||||
// LibMail.sendVhcSpawnZoneMail(`${(vhc[0]) ? vhc[0].nopol1 : 0 || ''}${(vhc[0]) ? vhc[0].nopol2 : 0 || ''}${(vhc[0]) ? vhc[0].nopol3 : 0 || ''} entering zone ${mailData.z_name}`, mailData.pic_mail, mailData);
|
// LibMail.sendVhcSpawnZoneMail(`${(vhc[0]) ? vhc[0].nopol1 : 0 || ''}${(vhc[0]) ? vhc[0].nopol2 : 0 || ''}${(vhc[0]) ? vhc[0].nopol3 : 0 || ''} entering zone ${mailData.z_name}`, mailData.pic_mail, mailData);
|
||||||
|
|
||||||
if (logDevice.device_id === "0865784052395871") console.log(1234567890)
|
if (logDevice.device_id === "0865784052395871")
|
||||||
|
console.log(1234567890)
|
||||||
GpsTracksModels.create2SpawnZone({
|
GpsTracksModels.create2SpawnZone({
|
||||||
device_id: logDevice.device_id,
|
device_id: logDevice.device_id,
|
||||||
master_id: Number(currTrack.result.insertId),
|
master_id: Number(currTrack.result.insertId),
|
||||||
enter_lat: logDevice.latitude,
|
enter_lat: logDevice.latitude,
|
||||||
enter_lng: logDevice.longitude,
|
enter_lng: logDevice.longitude,
|
||||||
enter_at_d: logDevice.crt_d || now,
|
enter_at_d: logDevice.crt_d || now,
|
||||||
enter_at_d_format: moment.unix(logDevice.crt_d || now).format("YYYY-MM-DD HH:mm:ss"),
|
enter_at_d_format: moment
|
||||||
|
.unix(logDevice.crt_d || now)
|
||||||
|
.format("YYYY-MM-DD HH:mm:ss"),
|
||||||
enter_at_s: now,
|
enter_at_s: now,
|
||||||
enter_at_s_format: moment.unix(now).format("YYYY-MM-DD HH:mm:ss"),
|
enter_at_s_format: moment
|
||||||
|
.unix(now)
|
||||||
|
.format("YYYY-MM-DD HH:mm:ss"),
|
||||||
zone_id: zone.zid,
|
zone_id: zone.zid,
|
||||||
zone_name: zone.name,
|
zone_name: zone.name,
|
||||||
vhc_id: vhc[0] ? vhc[0].vid : 0,
|
vhc_id: vhc[0] ? vhc[0].vid : 0,
|
||||||
source: GpsTracksModels.SOURCE_GPS_TRACKER,
|
source: GpsTracksModels.SOURCE_GPS_TRACKER,
|
||||||
crt: now,
|
crt: now,
|
||||||
crt_format: moment.unix(now).format("YYYY-MM-DD HH:mm:ss"),
|
crt_format: moment
|
||||||
|
.unix(now)
|
||||||
|
.format("YYYY-MM-DD HH:mm:ss"),
|
||||||
})
|
})
|
||||||
if (logDevice.device_id === "0865784052395871") console.log("DISINI")
|
if (logDevice.device_id === "0865784052395871")
|
||||||
|
console.log("DISINI")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -280,7 +344,8 @@ class ListenController {
|
|||||||
|
|
||||||
const logDevice = {
|
const logDevice = {
|
||||||
original_hex: me.ori_string,
|
original_hex: me.ori_string,
|
||||||
protocol: me.protocol_name == "unknown" ? null : me.protocol_name,
|
protocol:
|
||||||
|
me.protocol_name == "unknown" ? null : me.protocol_name,
|
||||||
action: null,
|
action: null,
|
||||||
device_id: null,
|
device_id: null,
|
||||||
latitude: null,
|
latitude: null,
|
||||||
@ -330,10 +395,13 @@ class ListenController {
|
|||||||
logDevice.speed = act.gps_data.speed
|
logDevice.speed = act.gps_data.speed
|
||||||
logDevice.orientation = act.gps_data.orientation
|
logDevice.orientation = act.gps_data.orientation
|
||||||
if (logDevice.latitude) {
|
if (logDevice.latitude) {
|
||||||
logDevice.stts_reverse_geo = GpsTracksModels.STTS_REVERSE_GEO_NOT
|
logDevice.stts_reverse_geo =
|
||||||
|
GpsTracksModels.STTS_REVERSE_GEO_NOT
|
||||||
}
|
}
|
||||||
logDevice.length_gps = act.gps_data.quantity_pos_satellites_c
|
logDevice.length_gps =
|
||||||
logDevice.pos_stlt_gps = act.gps_data.quantity_pos_satellites_b
|
act.gps_data.quantity_pos_satellites_c
|
||||||
|
logDevice.pos_stlt_gps =
|
||||||
|
act.gps_data.quantity_pos_satellites_b
|
||||||
logDevice.pos_type_gps =
|
logDevice.pos_type_gps =
|
||||||
Number(act.gps_data.realtime_dif_gps) === 0
|
Number(act.gps_data.realtime_dif_gps) === 0
|
||||||
? GpsTracksModels.STTS_POS_TYPE_GPS_RLTM
|
? GpsTracksModels.STTS_POS_TYPE_GPS_RLTM
|
||||||
@ -342,21 +410,28 @@ class ListenController {
|
|||||||
? GpsTracksModels.STTS_IS_POS_GPS_HAS
|
? GpsTracksModels.STTS_IS_POS_GPS_HAS
|
||||||
: GpsTracksModels.STTS_IS_POS_GPS_NOT
|
: GpsTracksModels.STTS_IS_POS_GPS_NOT
|
||||||
logDevice.crt = moment(act.gps_data.date).unix()
|
logDevice.crt = moment(act.gps_data.date).unix()
|
||||||
logDevice.crt_format = moment(act.gps_data.date).format("YYYY-MM-DD HH:mm:ss")
|
logDevice.crt_format = moment(act.gps_data.date).format(
|
||||||
|
"YYYY-MM-DD HH:mm:ss",
|
||||||
|
)
|
||||||
logDevice.crt_d = moment(act.gps_data.date).unix()
|
logDevice.crt_d = moment(act.gps_data.date).unix()
|
||||||
logDevice.crt_d_format = moment(act.gps_data.date).format("YYYY-MM-DD HH:mm:ss")
|
logDevice.crt_d_format = moment(act.gps_data.date).format(
|
||||||
|
"YYYY-MM-DD HH:mm:ss",
|
||||||
|
)
|
||||||
} else if (act.action_type == "heartbeat") {
|
} else if (act.action_type == "heartbeat") {
|
||||||
logDevice.action = act.action_type
|
logDevice.action = act.action_type
|
||||||
logDevice.device_id = act.device_id
|
logDevice.device_id = act.device_id
|
||||||
logDevice.ignition = Number(act.stts_data.terminal_info.acc)
|
logDevice.ignition = Number(act.stts_data.terminal_info.acc)
|
||||||
? GpsTracksModels.STTS_IGNITION_HIGH
|
? GpsTracksModels.STTS_IGNITION_HIGH
|
||||||
: GpsTracksModels.STTS_IGNITION_LOW
|
: GpsTracksModels.STTS_IGNITION_LOW
|
||||||
logDevice.stts_gps = act.stts_data.terminal_info.gps_tracking
|
logDevice.stts_gps = act.stts_data.terminal_info
|
||||||
|
.gps_tracking
|
||||||
? GpsTracksModels.STTS_GPS_ON
|
? GpsTracksModels.STTS_GPS_ON
|
||||||
: GpsTracksModels.STTS_GPS_OFF
|
: GpsTracksModels.STTS_GPS_OFF
|
||||||
logDevice.stts_gsm = Number(act.stts_data.gsm_signal_strength) + 1
|
logDevice.stts_gsm =
|
||||||
|
Number(act.stts_data.gsm_signal_strength) + 1
|
||||||
logDevice.stts_oil_electricity =
|
logDevice.stts_oil_electricity =
|
||||||
Number(act.stts_data.terminal_info.oil_electricity) === 0
|
Number(act.stts_data.terminal_info.oil_electricity) ===
|
||||||
|
0
|
||||||
? GpsTracksModels.STTS_OIL_ELECTRIC_ON
|
? GpsTracksModels.STTS_OIL_ELECTRIC_ON
|
||||||
: GpsTracksModels.STTS_OIL_ELECTRIC_OFF
|
: GpsTracksModels.STTS_OIL_ELECTRIC_OFF
|
||||||
|
|
||||||
@ -372,16 +447,21 @@ class ListenController {
|
|||||||
? GpsTracksModels.STTS_ALARM_SOS
|
? GpsTracksModels.STTS_ALARM_SOS
|
||||||
: GpsTracksModels.STTS_ALARM_NORMAL
|
: GpsTracksModels.STTS_ALARM_NORMAL
|
||||||
|
|
||||||
logDevice.stts_charge = Number(act.stts_data.terminal_info.charge)
|
logDevice.stts_charge = Number(
|
||||||
|
act.stts_data.terminal_info.charge,
|
||||||
|
)
|
||||||
? GpsTracksModels.STTS_CHARGE_ON
|
? GpsTracksModels.STTS_CHARGE_ON
|
||||||
: GpsTracksModels.STTS_CHARGE_OFF
|
: GpsTracksModels.STTS_CHARGE_OFF
|
||||||
logDevice.stts_acc = Number(act.stts_data.terminal_info.acc)
|
logDevice.stts_acc = Number(act.stts_data.terminal_info.acc)
|
||||||
? GpsTracksModels.STTS_ACC_HIGH
|
? GpsTracksModels.STTS_ACC_HIGH
|
||||||
: GpsTracksModels.STTS_ACC_LOW
|
: GpsTracksModels.STTS_ACC_LOW
|
||||||
logDevice.stts_switch = Number(act.stts_data.terminal_info.is_active)
|
logDevice.stts_switch = Number(
|
||||||
|
act.stts_data.terminal_info.is_active,
|
||||||
|
)
|
||||||
? GpsTracksModels.STTS_SWITCH_ON
|
? GpsTracksModels.STTS_SWITCH_ON
|
||||||
: GpsTracksModels.STTS_SWITCH_OFF
|
: GpsTracksModels.STTS_SWITCH_OFF
|
||||||
logDevice.stts_volt = Number(act.stts_data.voltage_level) + 1
|
logDevice.stts_volt =
|
||||||
|
Number(act.stts_data.voltage_level) + 1
|
||||||
} else if (act.action_type == "alarm") {
|
} else if (act.action_type == "alarm") {
|
||||||
logDevice.action = act.action_type
|
logDevice.action = act.action_type
|
||||||
logDevice.device_id = act.device_id
|
logDevice.device_id = act.device_id
|
||||||
@ -390,10 +470,13 @@ class ListenController {
|
|||||||
logDevice.speed = act.gps_data.speed
|
logDevice.speed = act.gps_data.speed
|
||||||
logDevice.orientation = act.gps_data.orientation
|
logDevice.orientation = act.gps_data.orientation
|
||||||
if (logDevice.latitude) {
|
if (logDevice.latitude) {
|
||||||
logDevice.stts_reverse_geo = GpsTracksModels.STTS_REVERSE_GEO_NOT
|
logDevice.stts_reverse_geo =
|
||||||
|
GpsTracksModels.STTS_REVERSE_GEO_NOT
|
||||||
}
|
}
|
||||||
logDevice.length_gps = act.gps_data.quantity_pos_satellites_c
|
logDevice.length_gps =
|
||||||
logDevice.pos_stlt_gps = act.gps_data.quantity_pos_satellites_b
|
act.gps_data.quantity_pos_satellites_c
|
||||||
|
logDevice.pos_stlt_gps =
|
||||||
|
act.gps_data.quantity_pos_satellites_b
|
||||||
logDevice.pos_type_gps =
|
logDevice.pos_type_gps =
|
||||||
Number(act.gps_data.realtime_dif_gps) === 0
|
Number(act.gps_data.realtime_dif_gps) === 0
|
||||||
? GpsTracksModels.STTS_POS_TYPE_GPS_RLTM
|
? GpsTracksModels.STTS_POS_TYPE_GPS_RLTM
|
||||||
@ -404,12 +487,15 @@ class ListenController {
|
|||||||
logDevice.ignition = Number(act.stts_data.terminal_info.acc)
|
logDevice.ignition = Number(act.stts_data.terminal_info.acc)
|
||||||
? GpsTracksModels.STTS_IGNITION_HIGH
|
? GpsTracksModels.STTS_IGNITION_HIGH
|
||||||
: GpsTracksModels.STTS_IGNITION_LOW
|
: GpsTracksModels.STTS_IGNITION_LOW
|
||||||
logDevice.stts_gps = act.stts_data.terminal_info.gps_tracking
|
logDevice.stts_gps = act.stts_data.terminal_info
|
||||||
|
.gps_tracking
|
||||||
? GpsTracksModels.STTS_GPS_ON
|
? GpsTracksModels.STTS_GPS_ON
|
||||||
: GpsTracksModels.STTS_GPS_OFF
|
: GpsTracksModels.STTS_GPS_OFF
|
||||||
logDevice.stts_gsm = Number(act.stts_data.gsm_signal_strength) + 1
|
logDevice.stts_gsm =
|
||||||
|
Number(act.stts_data.gsm_signal_strength) + 1
|
||||||
logDevice.stts_oil_electricity =
|
logDevice.stts_oil_electricity =
|
||||||
Number(act.stts_data.terminal_info.oil_electricity) === 0
|
Number(act.stts_data.terminal_info.oil_electricity) ===
|
||||||
|
0
|
||||||
? GpsTracksModels.STTS_OIL_ELECTRIC_ON
|
? GpsTracksModels.STTS_OIL_ELECTRIC_ON
|
||||||
: GpsTracksModels.STTS_OIL_ELECTRIC_OFF
|
: GpsTracksModels.STTS_OIL_ELECTRIC_OFF
|
||||||
|
|
||||||
@ -425,20 +511,29 @@ class ListenController {
|
|||||||
? GpsTracksModels.STTS_ALARM_SOS
|
? GpsTracksModels.STTS_ALARM_SOS
|
||||||
: GpsTracksModels.STTS_ALARM_NORMAL
|
: GpsTracksModels.STTS_ALARM_NORMAL
|
||||||
|
|
||||||
logDevice.stts_charge = Number(act.stts_data.terminal_info.charge)
|
logDevice.stts_charge = Number(
|
||||||
|
act.stts_data.terminal_info.charge,
|
||||||
|
)
|
||||||
? GpsTracksModels.STTS_CHARGE_ON
|
? GpsTracksModels.STTS_CHARGE_ON
|
||||||
: GpsTracksModels.STTS_CHARGE_OFF
|
: GpsTracksModels.STTS_CHARGE_OFF
|
||||||
logDevice.stts_acc = Number(act.stts_data.terminal_info.acc)
|
logDevice.stts_acc = Number(act.stts_data.terminal_info.acc)
|
||||||
? GpsTracksModels.STTS_ACC_HIGH
|
? GpsTracksModels.STTS_ACC_HIGH
|
||||||
: GpsTracksModels.STTS_ACC_LOW
|
: GpsTracksModels.STTS_ACC_LOW
|
||||||
logDevice.stts_switch = Number(act.stts_data.terminal_info.is_active)
|
logDevice.stts_switch = Number(
|
||||||
|
act.stts_data.terminal_info.is_active,
|
||||||
|
)
|
||||||
? GpsTracksModels.STTS_SWITCH_ON
|
? GpsTracksModels.STTS_SWITCH_ON
|
||||||
: GpsTracksModels.STTS_SWITCH_OFF
|
: GpsTracksModels.STTS_SWITCH_OFF
|
||||||
logDevice.stts_volt = Number(act.stts_data.voltage_level) + 1
|
logDevice.stts_volt =
|
||||||
|
Number(act.stts_data.voltage_level) + 1
|
||||||
logDevice.crt = moment(act.gps_data.date).unix()
|
logDevice.crt = moment(act.gps_data.date).unix()
|
||||||
logDevice.crt_format = moment(act.gps_data.date).format("YYYY-MM-DD HH:mm:ss")
|
logDevice.crt_format = moment(act.gps_data.date).format(
|
||||||
|
"YYYY-MM-DD HH:mm:ss",
|
||||||
|
)
|
||||||
logDevice.crt_d = moment(act.gps_data.date).unix()
|
logDevice.crt_d = moment(act.gps_data.date).unix()
|
||||||
logDevice.crt_d_format = moment(act.gps_data.date).format("YYYY-MM-DD HH:mm:ss")
|
logDevice.crt_d_format = moment(act.gps_data.date).format(
|
||||||
|
"YYYY-MM-DD HH:mm:ss",
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
logDevice.action = act.action_type
|
logDevice.action = act.action_type
|
||||||
logDevice.device_id = act.device_id
|
logDevice.device_id = act.device_id
|
||||||
@ -477,15 +572,27 @@ class ListenController {
|
|||||||
let countInserted = 0
|
let countInserted = 0
|
||||||
for (const rec of records) {
|
for (const rec of records) {
|
||||||
// console.log("rec ====> ", rec)
|
// console.log("rec ====> ", rec)
|
||||||
const timestamp_device = Math.floor(rec.gnss.timestamp / 1000) - 25200
|
const timestamp_device =
|
||||||
|
Math.floor(rec.gnss.timestamp / 1000) - 25200
|
||||||
// avoid duplicate timestamp
|
// avoid duplicate timestamp
|
||||||
if (previousCrtD == timestamp_device) continue
|
if (previousCrtD == timestamp_device) continue
|
||||||
previousCrtD = timestamp_device
|
previousCrtD = timestamp_device
|
||||||
|
|
||||||
const lastTrack = (await GpsTracksModels.get2LastLocByDeviceId(imei))?.[0]
|
const lastTrack = (
|
||||||
|
await GpsTracksModels.get2LastLocByDeviceId(imei)
|
||||||
|
)?.[0]
|
||||||
const isSleepMode = rec.io["Sleep Mode"] == 0 ? false : true
|
const isSleepMode = rec.io["Sleep Mode"] == 0 ? false : true
|
||||||
const isMoreThan1Min = lastTrack ? (timestamp_device - lastTrack.crt_d >= 60 ? true : false) : true
|
const isMoreThan1Min = lastTrack
|
||||||
if (!isMoreThan1Min && lastTrack.speed === 0 && rec.gnss.speed === 0) continue // avoid duplicate stationary log
|
? timestamp_device - lastTrack.crt_d >= 60
|
||||||
|
? true
|
||||||
|
: false
|
||||||
|
: true
|
||||||
|
if (
|
||||||
|
!isMoreThan1Min &&
|
||||||
|
lastTrack.speed === 0 &&
|
||||||
|
rec.gnss.speed === 0
|
||||||
|
)
|
||||||
|
continue // avoid duplicate stationary log
|
||||||
|
|
||||||
const now = moment().unix()
|
const now = moment().unix()
|
||||||
const logDevice = {
|
const logDevice = {
|
||||||
@ -497,7 +604,9 @@ class ListenController {
|
|||||||
longitude: rec.gnss.longitude || null,
|
longitude: rec.gnss.longitude || null,
|
||||||
speed: rec.gnss.speed || 0,
|
speed: rec.gnss.speed || 0,
|
||||||
orientation: rec.gnss.angle || 0,
|
orientation: rec.gnss.angle || 0,
|
||||||
ignition: rec.io.Ignition ? GpsTracksModels.STTS_IGNITION_HIGH : GpsTracksModels.STTS_IGNITION_LOW,
|
ignition: rec.io.Ignition
|
||||||
|
? GpsTracksModels.STTS_IGNITION_HIGH
|
||||||
|
: GpsTracksModels.STTS_IGNITION_LOW,
|
||||||
stts_engine: 0,
|
stts_engine: 0,
|
||||||
stts_gps: rec.gnss.satellites || 0,
|
stts_gps: rec.gnss.satellites || 0,
|
||||||
length_gps: 0,
|
length_gps: 0,
|
||||||
@ -521,10 +630,17 @@ class ListenController {
|
|||||||
crt_format: moment.unix(now).format("YYYY-MM-DD HH:mm:ss"),
|
crt_format: moment.unix(now).format("YYYY-MM-DD HH:mm:ss"),
|
||||||
// minus 7 hours -- ngikutin data gt06 biar sinkron
|
// minus 7 hours -- ngikutin data gt06 biar sinkron
|
||||||
crt_d: timestamp_device,
|
crt_d: timestamp_device,
|
||||||
crt_d_format: moment.unix(timestamp_device).format("YYYY-MM-DD HH:mm:ss"),
|
crt_d_format: moment
|
||||||
|
.unix(timestamp_device)
|
||||||
|
.format("YYYY-MM-DD HH:mm:ss"),
|
||||||
crt_s: now,
|
crt_s: now,
|
||||||
crt_s_format: moment.unix(now).format("YYYY-MM-DD HH:mm:ss"),
|
crt_s_format: moment
|
||||||
fuel_curr: !rec.io["Fuel Level"] && isSleepMode ? lastTrack?.fuel_curr : rec.io["Fuel Level"] || 0,
|
.unix(now)
|
||||||
|
.format("YYYY-MM-DD HH:mm:ss"),
|
||||||
|
fuel_curr:
|
||||||
|
!rec.io["Fuel Level"] && isSleepMode
|
||||||
|
? lastTrack?.fuel_curr
|
||||||
|
: rec.io["Fuel Level"] || 0,
|
||||||
fuel_count:
|
fuel_count:
|
||||||
!rec.io["Fuel Consumed (counted)"] && isSleepMode
|
!rec.io["Fuel Consumed (counted)"] && isSleepMode
|
||||||
? lastTrack?.fuel_count
|
? lastTrack?.fuel_count
|
||||||
@ -540,7 +656,11 @@ class ListenController {
|
|||||||
|
|
||||||
apiRes = JSON.parse(JSON.stringify(response[200]))
|
apiRes = JSON.parse(JSON.stringify(response[200]))
|
||||||
apiRes.meta.message = "success"
|
apiRes.meta.message = "success"
|
||||||
apiRes.data = { device_imei: imei, records_received: records.length, records_inserted: countInserted }
|
apiRes.data = {
|
||||||
|
device_imei: imei,
|
||||||
|
records_received: records.length,
|
||||||
|
records_inserted: countInserted,
|
||||||
|
}
|
||||||
return res.status(200).json(apiRes)
|
return res.status(200).json(apiRes)
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error("❌ error:", err.message)
|
console.error("❌ error:", err.message)
|
||||||
@ -565,7 +685,9 @@ class ListenController {
|
|||||||
const data = req.body
|
const data = req.body
|
||||||
const now = moment().unix()
|
const now = moment().unix()
|
||||||
|
|
||||||
const vhc_id = (await VhcModels.getVhcByDeviceId(data.imei.padStart(16, "0")))?.[0]?.vid
|
const vhc_id = (
|
||||||
|
await VhcModels.getVhcByDeviceId(data.imei.padStart(16, "0"))
|
||||||
|
)?.[0]?.vid
|
||||||
if (!vhc_id) {
|
if (!vhc_id) {
|
||||||
apiRes = JSON.parse(JSON.stringify(response[422]))
|
apiRes = JSON.parse(JSON.stringify(response[422]))
|
||||||
apiRes.meta.message = "Device ID not registered to any vehicle"
|
apiRes.meta.message = "Device ID not registered to any vehicle"
|
||||||
@ -595,7 +717,14 @@ class ListenController {
|
|||||||
image = new.image,
|
image = new.image,
|
||||||
filename = new.filename
|
filename = new.filename
|
||||||
`
|
`
|
||||||
const insD = [vhc_id, data.picture_at, data.cam, data.file.filename, data.file.url, now]
|
const insD = [
|
||||||
|
vhc_id,
|
||||||
|
data.picture_at,
|
||||||
|
data.cam,
|
||||||
|
data.file.filename,
|
||||||
|
data.file.url,
|
||||||
|
now,
|
||||||
|
]
|
||||||
const insR = await db.query(insQ, insD)
|
const insR = await db.query(insQ, insD)
|
||||||
|
|
||||||
apiRes = JSON.parse(JSON.stringify(response[200]))
|
apiRes = JSON.parse(JSON.stringify(response[200]))
|
||||||
|
|||||||
@ -144,7 +144,11 @@ class GpsTracksModels {
|
|||||||
let resLogs = undefined
|
let resLogs = undefined
|
||||||
|
|
||||||
if (Object.keys(logs).length > 0) {
|
if (Object.keys(logs).length > 0) {
|
||||||
resLogs = await MysqlHelpers.queryTrx(conn, `INSERT INTO t_gps_tracks SET ?;`, [logs])
|
resLogs = await MysqlHelpers.queryTrx(
|
||||||
|
conn,
|
||||||
|
`INSERT INTO t_gps_tracks SET ?;`,
|
||||||
|
[logs],
|
||||||
|
)
|
||||||
// console.log("insert t_gps_tracks : " + rltm.device_id)
|
// console.log("insert t_gps_tracks : " + rltm.device_id)
|
||||||
|
|
||||||
if (logs.action == "location") {
|
if (logs.action == "location") {
|
||||||
@ -158,52 +162,63 @@ class GpsTracksModels {
|
|||||||
INSERT INTO tracks_${yy}${mm}
|
INSERT INTO tracks_${yy}${mm}
|
||||||
SET ?
|
SET ?
|
||||||
`,
|
`,
|
||||||
[logs]
|
[logs],
|
||||||
)
|
)
|
||||||
// console.log("insert tracks_${yy}${mm} : " + rltm.device_id)
|
// console.log("insert tracks_${yy}${mm} : " + rltm.device_id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rltmLength > 0 && typeof resLogs !== "undefined") rltm.master_id = resLogs.insertId
|
if (rltmLength > 0 && typeof resLogs !== "undefined")
|
||||||
if (rltmLength > 0 && rltm.latitude !== null && rltm.longitude !== null) {
|
rltm.master_id = resLogs.insertId
|
||||||
|
if (
|
||||||
|
rltmLength > 0 &&
|
||||||
|
rltm.latitude !== null &&
|
||||||
|
rltm.longitude !== null
|
||||||
|
) {
|
||||||
let devices = await MysqlHelpers.queryTrx(
|
let devices = await MysqlHelpers.queryTrx(
|
||||||
conn,
|
conn,
|
||||||
`SELECT id FROM t_gps_tracks_rltm as rltm WHERE rltm.device_id = ?`,
|
`SELECT id FROM t_gps_tracks_rltm as rltm WHERE rltm.device_id = ?`,
|
||||||
[rltm.device_id]
|
[rltm.device_id],
|
||||||
)
|
)
|
||||||
if (devices.length > 1)
|
if (devices.length > 1)
|
||||||
await MysqlHelpers.queryTrx(conn, `DELETE from t_gps_tracks_rltm WHERE device_id = ?;`, [
|
await MysqlHelpers.queryTrx(
|
||||||
rltm.device_id,
|
conn,
|
||||||
])
|
`DELETE from t_gps_tracks_rltm WHERE device_id = ?;`,
|
||||||
|
[rltm.device_id],
|
||||||
|
)
|
||||||
|
|
||||||
if (rltm.vhc_id != 0) {
|
if (rltm.vhc_id != 0) {
|
||||||
let vhcs = await MysqlHelpers.queryTrx(
|
let vhcs = await MysqlHelpers.queryTrx(
|
||||||
conn,
|
conn,
|
||||||
`SELECT id FROM t_gps_tracks_rltm as rltm WHERE rltm.vhc_id = ?`,
|
`SELECT id FROM t_gps_tracks_rltm as rltm WHERE rltm.vhc_id = ?`,
|
||||||
[rltm.vhc_id]
|
[rltm.vhc_id],
|
||||||
)
|
)
|
||||||
if (vhcs.length > 1)
|
if (vhcs.length > 1)
|
||||||
await MysqlHelpers.queryTrx(conn, `DELETE from t_gps_tracks_rltm WHERE vhc_id = ?;`, [
|
await MysqlHelpers.queryTrx(
|
||||||
rltm.vhc_id,
|
conn,
|
||||||
])
|
`DELETE from t_gps_tracks_rltm WHERE vhc_id = ?;`,
|
||||||
|
[rltm.vhc_id],
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rltm.drv_id != 0) {
|
if (rltm.drv_id != 0) {
|
||||||
let drvs = await MysqlHelpers.queryTrx(
|
let drvs = await MysqlHelpers.queryTrx(
|
||||||
conn,
|
conn,
|
||||||
`SELECT id FROM t_gps_tracks_rltm as rltm WHERE rltm.drv_id = ?`,
|
`SELECT id FROM t_gps_tracks_rltm as rltm WHERE rltm.drv_id = ?`,
|
||||||
[rltm.drv_id]
|
[rltm.drv_id],
|
||||||
)
|
)
|
||||||
if (drvs.length > 1)
|
if (drvs.length > 1)
|
||||||
await MysqlHelpers.queryTrx(conn, `DELETE from t_gps_tracks_rltm WHERE drv_id = ?;`, [
|
await MysqlHelpers.queryTrx(
|
||||||
rltm.drv_id,
|
conn,
|
||||||
])
|
`DELETE from t_gps_tracks_rltm WHERE drv_id = ?;`,
|
||||||
|
[rltm.drv_id],
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
await MysqlHelpers.queryTrx(
|
await MysqlHelpers.queryTrx(
|
||||||
conn,
|
conn,
|
||||||
`INSERT INTO t_gps_tracks_rltm SET ? ON DUPLICATE KEY UPDATE ?;`,
|
`INSERT INTO t_gps_tracks_rltm SET ? ON DUPLICATE KEY UPDATE ?;`,
|
||||||
[rltm, rltm]
|
[rltm, rltm],
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -264,7 +279,8 @@ class GpsTracksModels {
|
|||||||
static async get2LastDevice(device_id) {
|
static async get2LastDevice(device_id) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
let params = []
|
let params = []
|
||||||
let query = "SELECT * FROM t_gps_tracks WHERE device_id = ? ORDER BY id DESC LIMIT 1"
|
let query =
|
||||||
|
"SELECT * FROM t_gps_tracks WHERE device_id = ? ORDER BY id DESC LIMIT 1"
|
||||||
params.push(device_id)
|
params.push(device_id)
|
||||||
db.query(query, params, function (err, resp) {
|
db.query(query, params, function (err, resp) {
|
||||||
if (err) {
|
if (err) {
|
||||||
@ -294,6 +310,23 @@ class GpsTracksModels {
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
static async get2LastLocByVhcId(vhc_id) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
let params = []
|
||||||
|
// let query = 'SELECT * FROM t_gps_tracks WHERE device_id = ? AND latitude is not null AND longitude != 0 ORDER BY id DESC LIMIT 1';
|
||||||
|
let query =
|
||||||
|
'SELECT * FROM t_gps_tracks WHERE action IN ("location","alarm") AND vhc_id = ? AND latitude is not null AND longitude != 0 ORDER BY id DESC LIMIT 1' // kalo gamau ngambil data heartbeat(idling)
|
||||||
|
params.push(vhc_id)
|
||||||
|
db.query(query, params, function (err, resp) {
|
||||||
|
if (err) {
|
||||||
|
reject(err)
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
resolve(resp)
|
||||||
|
return true
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
static async getLastSumMileage(device_id) {
|
static async getLastSumMileage(device_id) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
@ -377,7 +410,12 @@ class GpsTracksModels {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
static async checkSttsEngineBetweenDate(device_id, stts_engine, start, end) {
|
static async checkSttsEngineBetweenDate(
|
||||||
|
device_id,
|
||||||
|
stts_engine,
|
||||||
|
start,
|
||||||
|
end,
|
||||||
|
) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
let params = []
|
let params = []
|
||||||
let query =
|
let query =
|
||||||
|
|||||||
Reference in New Issue
Block a user