update
This commit is contained in:
32
app.js
32
app.js
@ -106,6 +106,27 @@ async function commitMessage(now, logDevice) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ================= UPDATE SUM MILEAGE DARI t_vehicle ====================
|
||||||
|
// if (logDevice.latitude != null && logDevice.longitude != null && lastTrack.length > 0) {
|
||||||
|
// const distance = LibHelper.haversineGreatCircleDistance(lastTrack[0].latitude, lastTrack[0].longitude, logDevice.latitude, logDevice.longitude, LibHelper.EARTH_RADIUS_KM);
|
||||||
|
// const distance_km = LibHelper.kmToKm(distance, 100000000);
|
||||||
|
|
||||||
|
// if (distance_km >= 3) {
|
||||||
|
// GpsTracksModels.bundleCreate2(logDevice, logDevice);
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// logDevice.pre_milleage = distance_km;
|
||||||
|
// logDevice.sum_milleage = (lastTrack[0].sum_milleage + logDevice.pre_milleage).toFixed(8);
|
||||||
|
// if (vhc.length > 0) {
|
||||||
|
// logDevice.vhc_id = vhc[0] ? vhc[0].vid : 0;
|
||||||
|
// if (lastTrack[0].vhc_id == logDevice.vhc_id) {
|
||||||
|
// logDevice.vhc_milleage = (lastTrack[0].vhc_milleage + logDevice.pre_milleage).toFixed(8);
|
||||||
|
// } else {
|
||||||
|
// logDevice.vhc_milleage = (vhc[0] ? vhc[0].sum_milleage : 0 + logDevice.pre_milleage).toFixed(8);
|
||||||
|
// }
|
||||||
|
// VhcModels.update(vhc[0] ? vhc[0].vid : 0, { sum_milleage: logDevice.vhc_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(lastTrack[0].latitude, lastTrack[0].longitude, logDevice.latitude, logDevice.longitude, LibHelper.EARTH_RADIUS_KM);
|
const distance = LibHelper.haversineGreatCircleDistance(lastTrack[0].latitude, lastTrack[0].longitude, logDevice.latitude, logDevice.longitude, LibHelper.EARTH_RADIUS_KM);
|
||||||
const distance_km = LibHelper.kmToKm(distance, 100000000);
|
const distance_km = LibHelper.kmToKm(distance, 100000000);
|
||||||
@ -117,13 +138,10 @@ async function commitMessage(now, logDevice) {
|
|||||||
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].vid;
|
||||||
if (lastTrack[0].vhc_id == logDevice.vhc_id) {
|
const increment = parseFloat(logDevice.pre_milleage || 0);
|
||||||
logDevice.vhc_milleage = (lastTrack[0].vhc_milleage + logDevice.pre_milleage).toFixed(8);
|
|
||||||
} else {
|
await VhcModels.incrementMileage(vhc[0].vid, increment);
|
||||||
logDevice.vhc_milleage = (vhc[0] ? vhc[0].sum_milleage : 0 + logDevice.pre_milleage).toFixed(8);
|
|
||||||
}
|
|
||||||
VhcModels.update(vhc[0] ? vhc[0].vid : 0, { sum_milleage: logDevice.vhc_milleage });
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1,101 +1,111 @@
|
|||||||
const db = require(`../config/dbMysqlConn`);
|
const db = require(`../config/dbMysqlConn`);
|
||||||
|
|
||||||
class VhcModels {
|
class VhcModels {
|
||||||
|
static STTS_ACTIVE = 1;
|
||||||
|
static STTS_INACTIVE = 2;
|
||||||
|
|
||||||
static STTS_ACTIVE = 1;
|
static IN_ORD_YES = 1;
|
||||||
static STTS_INACTIVE = 2;
|
|
||||||
|
|
||||||
static IN_ORD_YES = 1;
|
|
||||||
static IN_ORD_NO = 2;
|
static IN_ORD_NO = 2;
|
||||||
|
|
||||||
static async getVhcByDeviceId(device_id) {
|
static async getVhcByDeviceId(device_id) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
let params = [];
|
let params = [];
|
||||||
let query = 'SELECT';
|
let query = "SELECT";
|
||||||
query += ' v.id as vid,v.nopol1,v.nopol2,v.nopol3,v.sum_milleage,vd.speed_limit';
|
query += " v.id as vid,v.nopol1,v.nopol2,v.nopol3,v.sum_milleage,vd.speed_limit";
|
||||||
query += ' ,da.fullname as da_name,da.phone as da_phone,da.phone_code as da_phone_code';
|
query += " ,da.fullname as da_name,da.phone as da_phone,da.phone_code as da_phone_code";
|
||||||
query += ' FROM t_vehicles AS v';
|
query += " FROM t_vehicles AS v";
|
||||||
query += ' INNER JOIN t_vehicles_detail AS vd ON v.id = vd.vid';
|
query += " INNER JOIN t_vehicles_detail AS vd ON v.id = vd.vid";
|
||||||
query += ' LEFT JOIN t_drivers AS da ON v.a_did = da.id';
|
query += " LEFT JOIN t_drivers AS da ON v.a_did = da.id";
|
||||||
query += ' WHERE v.dlt is null AND v.status = ? AND v.device_id = ?';
|
query += " WHERE v.dlt is null AND v.status = ? AND v.device_id = ?";
|
||||||
params.push(VhcModels.STTS_ACTIVE, device_id);
|
params.push(VhcModels.STTS_ACTIVE, device_id);
|
||||||
db.query(query, params, function (err, resp) {
|
db.query(query, params, function (err, resp) {
|
||||||
if (err) {
|
if (err) {
|
||||||
reject(err);
|
reject(err);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
resolve(resp);
|
resolve(resp);
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
static async getVhcById(id) {
|
static async getVhcById(id) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
let params = [];
|
let params = [];
|
||||||
let query = 'SELECT';
|
let query = "SELECT";
|
||||||
query += ' v.id as vid,v.nopol1,v.nopol2,v.nopol3,v.sum_milleage,vd.speed_limit';
|
query += " v.id as vid,v.nopol1,v.nopol2,v.nopol3,v.sum_milleage,vd.speed_limit";
|
||||||
query += ' ,da.fullname as da_name,da.phone as da_phone,da.phone_code as da_phone_code';
|
query += " ,da.fullname as da_name,da.phone as da_phone,da.phone_code as da_phone_code";
|
||||||
query += ' ,v.is_in_ord,v.ord_id,v.ord_code,v.ord_ids';
|
query += " ,v.is_in_ord,v.ord_id,v.ord_code,v.ord_ids";
|
||||||
query += ' FROM t_vehicles AS v';
|
query += " FROM t_vehicles AS v";
|
||||||
query += ' INNER JOIN t_vehicles_detail AS vd ON v.id = vd.vid';
|
query += " INNER JOIN t_vehicles_detail AS vd ON v.id = vd.vid";
|
||||||
query += ' LEFT JOIN t_drivers AS da ON v.a_did = da.id';
|
query += " LEFT JOIN t_drivers AS da ON v.a_did = da.id";
|
||||||
// query += ' WHERE v.dlt is null AND v.status = ? AND v.id = ?';
|
// query += ' WHERE v.dlt is null AND v.status = ? AND v.id = ?';
|
||||||
query += ' WHERE v.dlt is null AND v.id = ?';
|
query += " WHERE v.dlt is null AND v.id = ?";
|
||||||
query += ' LIMIT 1';
|
query += " LIMIT 1";
|
||||||
params.push(id);
|
params.push(id);
|
||||||
db.query(query, params, function (err, resp) {
|
db.query(query, params, function (err, resp) {
|
||||||
if (err) {
|
if (err) {
|
||||||
reject(err);
|
reject(err);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
resolve(resp);
|
resolve(resp);
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
static async update(id, data) {
|
static async update(id, data) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
const query = `UPDATE t_vehicles SET ? WHERE id = ?;`;
|
const query = `UPDATE t_vehicles SET ? WHERE id = ?;`;
|
||||||
db.getConnection(function (err, conn) {
|
db.getConnection(function (err, conn) {
|
||||||
if (err) {
|
if (err) {
|
||||||
conn.release();
|
conn.release();
|
||||||
reject(err);
|
reject(err);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
conn.beginTransaction(async function (err) {
|
conn.beginTransaction(async function (err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
conn.release();
|
conn.release();
|
||||||
reject(err);
|
reject(err);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
conn.query(query, [data, id], function (err, resp) {
|
conn.query(query, [data, id], function (err, resp) {
|
||||||
if (err) {
|
if (err) {
|
||||||
conn.rollback(async function () {
|
conn.rollback(async function () {
|
||||||
conn.release();
|
|
||||||
reject(err.message);
|
|
||||||
});
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
conn.commit(async function (err) {
|
|
||||||
if (err) {
|
|
||||||
conn.release();
|
conn.release();
|
||||||
reject(err);
|
reject(err.message);
|
||||||
return false;
|
});
|
||||||
}
|
return false;
|
||||||
conn.release();
|
}
|
||||||
resolve(resp);
|
conn.commit(async function (err) {
|
||||||
return true;
|
if (err) {
|
||||||
});
|
conn.release();
|
||||||
});
|
reject(err);
|
||||||
});
|
return false;
|
||||||
|
}
|
||||||
});
|
conn.release();
|
||||||
});
|
resolve(resp);
|
||||||
}
|
return true;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
static async incrementMileage(vhc_id, add_km) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
const query = `
|
||||||
|
UPDATE t_vehicles
|
||||||
|
SET sum_milleage = COALESCE(sum_milleage, 0) + ?
|
||||||
|
WHERE id = ? AND dlt IS NULL
|
||||||
|
`;
|
||||||
|
db.query(query, [add_km, vhc_id], (err, result) => {
|
||||||
|
if (err) return reject(err);
|
||||||
|
resolve(result);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = VhcModels;
|
module.exports = VhcModels;
|
||||||
|
|||||||
Reference in New Issue
Block a user