QR kód ugrás hozzáadva.

This commit is contained in:
Vincze József 2024-05-15 09:03:36 +02:00
parent ccb625c366
commit bef86df5d4
3 changed files with 305 additions and 3 deletions

View File

@ -46,7 +46,7 @@ exports.apiRegisterDevice=function(deviceId,username,password,deviceType,callbac
}
else {
if (rfidDevice)
callback(null,{'message':'Az eszköz már regisztrálva van!'});
callback(null,{'message':'Az eszköz már regisztrálva van!','apiKey':employee.apiKey});
else
{

View File

@ -15,6 +15,10 @@ let employeeSchema = mongoose.Schema({
type: String,
require: true
},
qrCode:{
type: String,
require: true
},
address:{
type: String,
require: true

View File

@ -511,7 +511,177 @@ transporter = nodemailer.createTransport({
}
});
break;
case 'ACCESSQR': // Bejelentezés QR kóddal
moment.locale('HU');
var response = {
status : 200,
data : 'INVALID QUERY'
}
if (!data.CID1 | !data.CID2)
{
//console.log("Invalid Client ID!");
createLog("INVALID CID",data);//JSON.stringify(data));
response.status=200;
response.data='INVALID CLIENT ID';
socket.write(JSON.stringify(response));
break;
}
if (!data.LAT | !data.LON)
{
//console.log("Invalid Client POS!");
createLog("INVALID LOCATION ",data);//JSON.stringify(data));
response.status=200;
response.data='INVALID LOCATION ID';
socket.write(JSON.stringify(response));
break;
}
//var address=getAddress(data.LAT,data.LON);
DeviceRemote.findOne({imei:data.CID1,ccid:data.CID2}, function(err,device){
if (err)
{
console.log("Device DB err:"+err);
}
else
{
//if (!device.length)
if (typeof device === 'undefined' || !device)
{
//console.log(ma+' Invalid device! RAW: '+JSON.stringify(data)+'\r\n');
createLog("INVALID DEVICE",data);//JSON.stringify(data));
socket.write(JSON.stringify({
status: 200,
data: 'Invalid device!'
}));
}
else
{
if (!data.loc)
{
response.status=200;
response.data='INVALID LOCATION';
socket.write(JSON.stringify(response));
}
else
{
if (data.mode!='ARRIVAL' && data.mode!='GETAWAY' && data.mode!='FREEDOM' && data.mode!='SICKPAY')
{
response.status=200;
response.data='INVALID MODE';
socket.write(JSON.stringify(response));
}
else
{
//console.log(data.rfid);
Employee.findOne({'qrCode':data.qrCode},function(err,employee){
if(err)
{
response.status=200;
response.data='DB ERROR 1';
socket.write(JSON.stringify(response));
}
else
{
if (employee)
{
// Ha pozíció szöveges (fix telepítésű WiFi-nél)
//Utca név is kell;
//var addr=address.city+","+address.road+" "+address.number;
getAddress(data.LAT,data.LON,data.loc,function(err,address){
if (err)
{
console.log("GeoAddress Error! "+err);
// response.status=200;
// response.data='GeoErr! ';
//socket.write(JSON.stringify(response));
// return;
// Nincs GPS!!!!!!!!!!!!!!!!!!!!!!
addr=device.assignment;
registerAccess(employee,addr,null,null,device,function(err,result){
//registerAccess(employee,data.loc,function(err,result){
if (err)
{
console.log(err);
socket.write(JSON.stringify(err));
}
else
{
checkIsHoliday(employee._id,ma,function(err,cb){
if (err)
{
console.log('Holiday Split Error: '+err);
}
else
{
socket.write(JSON.stringify(result));
}
})
}
})
}
else
{
var addr=address.city+","+address.road+" "+address.number;
/* if (data.loc==='G'){
var dec=convertDeg2Dec(data.LAT,data.LON);
}
else*/
if (data.loc==="G2"){
var dec={'latdec':data.LAT,'londec':data.LON}
}
else
{
var dec=convertDeg2Dec(data.LAT,data.LON);
}
registerAccess(employee,addr,dec.latdec,dec.londec,device,function(err,result){
//registerAccess(employee,data.loc,function(err,result){
if (err)
{
console.log(err);
socket.write(JSON.stringify(err));
}
else
{
//console.log('Access: '+JSON.stringify(result));
createLog("ACCESS",result);//JSON.stringify(result));
checkIsHoliday(employee._id,ma,function(err,cb){
if (err)
{
console.log('Holiday Split Error: '+err);
}
else
{
socket.write(JSON.stringify(result));
}
})
}
})
}
});
}
else
{
//console.log("Nincs munkavállaló ezzel az azonosítóval!");
createLog("INVALID CODE",data.rfid);//JSON.stringify(data.rfid));
response.status=200;
response.data='INVALID CODE';
socket.write(JSON.stringify(response));
}
}
})
}
}
}
}
});
break;
case 'ACCESSNOGEO': // Bejelentkezés telefonról Ha a címadat már megvan
moment.locale('HU');
var response = {
@ -633,7 +803,128 @@ transporter = nodemailer.createTransport({
}
});
break;
case 'NTRK':
case 'ACCESSNOGEOQR': // Bejelentkezés telefonról QR kóddal Ha a címadat már megvan
moment.locale('HU');
var response = {
status : 200,
data : 'INVALID QUERY'
}
if (!data.CID1 | !data.CID2)
{
//console.log("Invalid Client ID!");
createLog("INVALID CID",data);//JSON.stringify(data));
response.status=200;
response.data='INVALID CLIENT ID';
socket.write(JSON.stringify(response));
break;
}
if (!data.LAT | !data.LON)
{
//console.log("Invalid Client POS!");
createLog("INVALID LOCATION",data);//JSON.stringify(data));
response.status=200;
response.data='INVALID LOCATION ID';
socket.write(JSON.stringify(response));
break;
}
//var address=getAddress(data.LAT,data.LON);
DeviceRemote.find({imei:data.CID1,ccid:data.CID2}, function(err,device){
if (err)
{
console.log("Device DB err:"+err);
}
else
{
if (!device.length)
{
// console.log('Invalid device!\r\n');
//console.log(ma+' Invalid device! RAW: '+JSON.stringify(data)+'\r\n');
createLog("INVALID DEVICE",data);//JSON.stringify(data));
socket.write(JSON.stringify({
status: 200,
data: 'Invalid device!'
}));
}
else
{
if (!data.address)
{
response.status=200;
response.data='INVALID ADDRESS';
socket.write(JSON.stringify(response));
}
else
{
if (data.mode!='ARRIVAL' && data.mode!='GETAWAY' && data.mode!='FREEDOM' && data.mode!='SICKPAY')
{
response.status=200;
response.data='INVALID MODE';
socket.write(JSON.stringify(response));
}
else
{
//console.log(data.rfid);
Employee.findOne({'qrCode':data.qrCode},function(err,employee){
if(err)
{
response.status=200;
response.data='DB ERROR 1';
socket.write(JSON.stringify(response));
}
else
{
if (employee)
{
// Ha pozíció szöveges (fix telepítésű WiFi-nél)
registerAccess(employee,data.address,data.LAT,data.LON,device,function(err,result){
//registerAccess(employee,data.loc,function(err,result){
if (err)
{
console.log(err);
socket.write(JSON.stringify(err));
}
else
{
//console.log('Access: '+JSON.stringify(result));
createLog("ACCESS",result);//JSON.stringify(result));
checkIsHoliday(employee._id,ma,function(err,cb){
if (err)
{
console.log('Holiday Split Error: '+err);
}
else
{
socket.write(JSON.stringify(result));
}
})
}
})
}
else
{
//console.log("Nincs munkavállaló ezzel az azonosítóval!");
createLog("INVALID CODE",data.rfid);//JSON.stringify(data.rfid));
response.status=200;
response.data='INVALID CODE';
socket.write(JSON.stringify(response));
}
}
})
}
}
}
}
});
break;
case 'NTRK':
tracker.newTrack(data.id,function(err,result){
if (err)
{
@ -4014,6 +4305,7 @@ router.post('/getLocationInfo',function(req,res){
function registerAccess(employee,city,lat,lon,device, callback)
{
console.log("ACCESS: "+employee.name+" City: "+city+" WTID: "+employee.workingtimeId);
const newQrCode = uuidAPIKey.create().uuid;//crypto.randomBytes(16).toString('hex');
// Ha van megkezdett munkaidő beolvassuk
if (employee.workingtimeId)
{
@ -4045,6 +4337,7 @@ function registerAccess(employee,city,lat,lon,device, callback)
access.locationStop=city;
access.latitudeE=lat;
access.longitudeE=lon;
access.deviceId=device._id;
var a = moment(wt.timeArrive, "YYYY.MM.DD. HH:mm");
var b = moment(access.timeGetaway, "YYYY.MM.DD. HH:mm");
@ -4076,6 +4369,7 @@ function registerAccess(employee,city,lat,lon,device, callback)
{
sendEmailGetavayNotify(employee,city,wt.timeArrive,access.timeGetaway,convertMinsToHrsMins(access.workHours));
}
emp.qrCode=newQrCode;
Employee.updateOne({_id:employee._id},emp,function(err){
if (err)
{
@ -4134,6 +4428,7 @@ function registerAccess(employee,city,lat,lon,device, callback)
access.timeGetaway="-";
access.deviceId=device._id;
access.vehicleId=device.vehicle_id;
access.save(function(err){
if(err){
var err={'status':200,'error':'DB ERROR 5'};
@ -4150,6 +4445,7 @@ function registerAccess(employee,city,lat,lon,device, callback)
sendEmailArriveNotify(employee,city,access.timeArrive);
}
emp.workingtimeId=access._id;
emp.qrCode=newQrCode;
Employee.updateOne({_id:employee._id},emp,function(err){
if (err)
{
@ -4208,6 +4504,7 @@ function registerAccess(employee,city,lat,lon,device, callback)
access.timeGetaway="-";
access.deviceId=device._id;
access.vehicleId=device.vehicle_id;
if (employee.emailNotifyFlags.arriving)
{
sendEmailArriveNotify(employee,city,access.timeArrive);
@ -4224,6 +4521,7 @@ function registerAccess(employee,city,lat,lon,device, callback)
let emp={};
emp.workingtimeId=access._id;
emp.qrCode=newQrCode;
Employee.updateOne({_id:employee._id},emp,function(err){
if (err)
{