update compare plate 7

This commit is contained in:
dongpd 2020-02-05 09:41:09 +07:00
parent 7bf9cf9f25
commit ae07cb58d7

View File

@ -57,18 +57,18 @@ function levenshtein(a, b) {
return matrix[b.length][a.length]; return matrix[b.length][a.length];
} }
const db = makeDb(config);
var currentIn = {"plate": "", "time": 0}; var currentIn = {"plate": "", "time": 0};
var currentOut = {"plate": "", "time": 0}; var currentOut = {"plate": "", "time": 0};
exports.SaveLogs = async function (req, res) { exports.SaveLogs = async function (req, res) {
console.log("req: ", req.body.plate, " current: ", current);
var today = new Date(); var today = new Date();
var currentDate = today.getDate(); var currentDate = today.getDate();
var currentMonth = today.getMonth() + 1; var currentMonth = today.getMonth() + 1;
var currentYear = today.getFullYear(); var currentYear = today.getFullYear();
var rootDir = "/mnt/c/xampp/htdocs/AIParking_Intops_Server/web/data/uploads/"; var rootDir = "/mnt/d/xampp/htdocs/AIParking_Intops_Server/web/data/uploads/";
if (!fs.existsSync(rootDir + currentYear)) if (!fs.existsSync(rootDir + currentYear))
fs.mkdirSync(rootDir + currentYear); fs.mkdirSync(rootDir + currentYear);
@ -86,6 +86,7 @@ exports.SaveLogs = async function (req, res) {
var canSaveLogs = true; var canSaveLogs = true;
var vehicleInfo = {"status": false}; var vehicleInfo = {"status": false};
if (req.body.type === "in" && (currentTimestamp - currentIn.time) < 600) { if (req.body.type === "in" && (currentTimestamp - currentIn.time) < 600) {
if (req.body.plate === currentIn.plate) { if (req.body.plate === currentIn.plate) {
canSaveLogs = false; canSaveLogs = false;
@ -100,6 +101,12 @@ exports.SaveLogs = async function (req, res) {
canSaveLogs = false; canSaveLogs = false;
} }
} }
if (req.body.type == "in") {
console.log("req: ", req.body.plate, "\t type: ", req.body.type, " \t compare: ", currentIn.plate, "\t save: ", canSaveLogs);
}
if (req.body.type == "out") {
console.log("req: ", req.body.plate, "\t type: ", req.body.type, " \t compare: ", currentOut.plate, "\t save: ", canSaveLogs);
}
if (canSaveLogs) { if (canSaveLogs) {
if (req.body.type === "in") { if (req.body.type === "in") {
currentIn = {"plate": req.body.plate, "time": currentTimestamp}; currentIn = {"plate": req.body.plate, "time": currentTimestamp};
@ -107,6 +114,13 @@ exports.SaveLogs = async function (req, res) {
if (req.body.type === "out") { if (req.body.type === "out") {
currentOut = {"plate": req.body.plate, "time": currentTimestamp}; currentOut = {"plate": req.body.plate, "time": currentTimestamp};
} }
var query_plate_raw = await db.query("SELECT * FROM vehicle WHERE plate='" + req.body.plate + "'");
if (query_plate_raw.length == 0 && req.body.plate.length <= 7) {
res.send(vehicleInfo);
return;
}
var fileName = req.body.plate + "_" + currentTimestamp + ".png"; var fileName = req.body.plate + "_" + currentTimestamp + ".png";
var plateSaved = currentYear + "/" + currentMonth + "/" + currentDate + "/" + req.body.type + "/plate/" + fileName; var plateSaved = currentYear + "/" + currentMonth + "/" + currentDate + "/" + req.body.type + "/plate/" + fileName;
var frameSaved = currentYear + "/" + currentMonth + "/" + currentDate + "/" + req.body.type + "/frame/" + fileName; var frameSaved = currentYear + "/" + currentMonth + "/" + currentDate + "/" + req.body.type + "/frame/" + fileName;
@ -114,8 +128,6 @@ exports.SaveLogs = async function (req, res) {
await fs.writeFileSync(rootDir + plateSaved, req.body.plate_image, 'base64'); await fs.writeFileSync(rootDir + plateSaved, req.body.plate_image, 'base64');
await fs.writeFileSync(rootDir + frameSaved, req.body.frame_image, 'base64'); await fs.writeFileSync(rootDir + frameSaved, req.body.frame_image, 'base64');
const db = makeDb(config);
var query_plate_raw = await db.query("SELECT * FROM vehicle WHERE plate='" + req.body.plate + "'");
if (query_plate_raw.length > 0) { if (query_plate_raw.length > 0) {
vehicleInfo = {"status": true, "data": query_plate_raw[0]}; vehicleInfo = {"status": true, "data": query_plate_raw[0]};
if (req.body.type == "in") { if (req.body.type == "in") {
@ -130,7 +142,7 @@ exports.SaveLogs = async function (req, res) {
} }
} }
} else { } else {
var query_plate_levenshtein = await db.query("SELECT * FROM `vehicle` WHERE levenshtein('%" + req.body.plate + "', `plate`) BETWEEN 0 AND 1 LIMIT 0,1"); var query_plate_levenshtein = await db.query("SELECT * FROM `vehicle` WHERE levenshtein('" + req.body.plate + "', `plate`) BETWEEN 0 AND 1 LIMIT 0,1");
if (query_plate_levenshtein.length > 0) { if (query_plate_levenshtein.length > 0) {
vehicleInfo = {"status": true, "data": query_plate_levenshtein[0]}; vehicleInfo = {"status": true, "data": query_plate_levenshtein[0]};
if (req.body.type == "in") { if (req.body.type == "in") {
@ -153,7 +165,7 @@ exports.SaveLogs = async function (req, res) {
if (checkIn_raw.length > 0) { if (checkIn_raw.length > 0) {
await db.query("UPDATE logs_unknow SET `plate_image_out`='" + plateSaved + "',`frame_image_out`='" + frameSaved + "',`time_out`=" + currentTimestamp + " WHERE id=" + checkIn_raw[0].id); await db.query("UPDATE logs_unknow SET `plate_image_out`='" + plateSaved + "',`frame_image_out`='" + frameSaved + "',`time_out`=" + currentTimestamp + " WHERE id=" + checkIn_raw[0].id);
} else { } else {
var checkIn_levenshtein = await db.query("SELECT * FROM `logs_unknow` WHERE levenshtein('%" + req.body.plate + "', `plate`) BETWEEN 0 AND 1 AND time_out=0 ORDER BY time_in DESC LIMIT 0,1"); var checkIn_levenshtein = await db.query("SELECT * FROM `logs_unknow` WHERE levenshtein('" + req.body.plate + "', `plate`) BETWEEN 0 AND 1 AND time_out=0 ORDER BY time_in DESC LIMIT 0,1");
if (checkIn_levenshtein.length > 0) { if (checkIn_levenshtein.length > 0) {
await db.query("UPDATE logs_unknow SET `plate_image_out`='" + plateSaved + "',`frame_image_out`='" + frameSaved + "',`time_out`=" + currentTimestamp + " WHERE id=" + checkIn_levenshtein[0].id); await db.query("UPDATE logs_unknow SET `plate_image_out`='" + plateSaved + "',`frame_image_out`='" + frameSaved + "',`time_out`=" + currentTimestamp + " WHERE id=" + checkIn_levenshtein[0].id);
} else { } else {