update Di 28. Apr 13:31:01 CEST 2020

This commit is contained in:
Robert Richter 2020-04-28 13:31:01 +02:00
parent 059c04a7c9
commit 404261ca71
3 changed files with 40 additions and 26 deletions

View File

@ -32,8 +32,7 @@ module.exports = function (io, sql, app_cfg, waip) {
// Socket-Room beitreiten
socket.join(wachen_id, function () {
// prüfen ob für diese Wache Einsätze vorhanden sind
var user_id = socket.request.user.id;
sql.db_einsatz_ermitteln(wachen_id, user_id, function (result_einsatz) {
sql.db_einsatz_ermitteln(wachen_id, socket, function (result_einsatz) {
if (result_einsatz) {
// nur den ersten Einsatz senden, falls mehrere vorhanden sind
var waip_id = result_einsatz[0].waip_einsaetze_ID;
@ -59,7 +58,7 @@ module.exports = function (io, sql, app_cfg, waip) {
});
// Disconnect
socket.on('disconnect', function () {
sql.db_log('DEBUG', 'Alarmmonitor Nr. ' + wachen_id + ' von ' + client_ip + ' (' + socket.id + ') geschlossen.');
sql.db_log('DEBUG', 'Alarmmonitor von ' + client_ip + ' (' + socket.id + ') geschlossen.');
sql.db_client_delete(socket);
});
});
@ -78,29 +77,15 @@ nsp_dbrd.on('connection', function (socket) {
sql.db_log('DEBUG', 'Dashboard ' + uuid + ' von ' + client_ip + ' (' + socket.id + ') aufgerufen.');
// prüfen ob Dashboard/Einsatz vorhanden
sql.db_einsatz_uuid_vorhanden(uuid, function(dbrd_uuid) {
// wenn die Wachennummer vorhanden/plausibel dann weiter
if (result) {
// wenn die Wachennummer vorhanden dann weiter
if (dbrd_uuid) {
// Socket-Room beitreiten
socket.join(wachen_id, function () {
// prüfen ob für diese Wache Einsätze vorhanden sind
var user_id = socket.request.user.id;
sql.db_einsatz_ermitteln(wachen_id, user_id, function (result_einsatz) {
if (result_einsatz) {
// nur den ersten Einsatz senden, falls mehrere vorhanden sind
var waip_id = result_einsatz[0].waip_einsaetze_ID;
sql.db_log('WAIP', 'Einsatz ' + waip_id + ' für Wache ' + wachen_id + ' vorhanden, wird jetzt an Client ' + socket.id + ' gesendet.');
socket.join(dbrd_uuid, function () {
sql.db_log('DBRD', 'Einsatz ' + dbrd_uuid + ' für Dashboard ' + dbrd_uuid + ' vorhanden, wird jetzt an Client ' + socket.id + ' gesendet.');
//letzten Einsatz verteilen
waip.einsatz_verteilen(waip_id, socket, wachen_id);
//vorhandene Rückmeldungen verteilen
waip.rueckmeldung_verteilen_for_client(waip_id, socket, wachen_id);
} else {
sql.db_log('WAIP', 'Kein Einsatz für Wache ' + wachen_id + ' vorhanden, gehe in Standby');
// falls kein Einsatz vorhanden ist, dann Standby senden
socket.emit('io.standby', null);
};
});
waip.dbrd_verteilen(dbrd_uuid, socket);
// in Statusüberischt speichern
sql.db_update_client_status(socket, null);
sql.db_update_client_status(socket, dbrd_uuid);
});
} else {
sql.db_log('ERROR', 'Fehler: Dashboard ' + dbrd_uuid + 'nicht (mehr) vorhanden!');

View File

@ -1,8 +1,9 @@
module.exports = function (db, uuidv4, turf, app_cfg) {
// ermittelt den letzten vorhanden Einsatz zu einer Wache
function db_einsatz_ermitteln(wachen_id, user_id, callback) {
function db_einsatz_ermitteln(wachen_id, socket, callback) {
var select_reset_counter;
var user_id = socket.request.user.id;
var dts = app_cfg.global.default_time_for_standby;
// wenn Wachen-ID 0 ist, dann % setzen
if (parseInt(wachen_id) == 0) {

View File

@ -239,8 +239,9 @@ module.exports = function (io, sql, tw, async, app_cfg) {
// alle User-Einstellungen prüfen und ggf. Standby senden
sql.db_get_sockets_to_standby(function (socket_ids) {
if (socket_ids) {
console.log()
socket_ids.forEach(function (row) {
var socket = io.sockets.sockets[row.socket_id];
var socket = io.sockets.connected[row.socket_id];
socket.emit('io.standby', null);
socket.emit('io.stopaudio', null);
sql.db_log('WAIP', 'Standby an Socket ' + socket.id + ' gesendet');
@ -297,11 +298,38 @@ module.exports = function (io, sql, tw, async, app_cfg) {
})
}, 10000);
function dbrd_verteilen(dbrd_uuid, socket) {
sql.db_get_einsatzdaten_by_uuid(dbrd_uuid, function(einsatzdaten) {
if (einsatzdaten) {
sql.db_check_permission(socket.request.user, einsatzdaten.id, function(valid) {
if (!valid) {
delete einsatzdaten.objekt;
delete einsatzdaten.besonderheiten;
delete einsatzdaten.strasse;
delete einsatzdaten.wgs84_x;
delete einsatzdaten.wgs84_y;
};
socket.emit('io.Einsatz', einsatzdaten);
sql.db_log('DBRD', 'Einsatzdaten für Dashboard' + dbrd_uuid + ' an Socket ' + socket.id + ' gesendet');
sql.db_update_client_status(socket, waip_id);
});
} else {
var err = new Error('Der angefragte Einsatz ist nicht - oder nicht mehr - vorhanden!');
err.status = 404;
next(err);
};
});
};
// TODO: Funktion um Clients "neuzustarten" (Seite remote neu laden)
return {
einsatz_speichern: einsatz_speichern,
einsatz_verteilen: einsatz_verteilen,
dbrd_verteilen: dbrd_verteilen,
rueckmeldung_verteilen_for_client: rueckmeldung_verteilen_for_client,
reuckmeldung_verteilen_by_uuid: reuckmeldung_verteilen_by_uuid
};