From 0a2fb825defa317b37619b0fa85f4303a83f58ee Mon Sep 17 00:00:00 2001 From: Robert Richter Date: Tue, 3 Mar 2020 14:01:01 +0100 Subject: [PATCH] =?UTF-8?q?update=20Di=203.=20M=C3=A4r=2014:01:01=20CET=20?= =?UTF-8?q?2020?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/js/client_waip.js | 1 + server.js | 2 +- server/routing.js | 3 ++- server/socket.js | 1 + server/sql_qry.js | 23 +++++++++++++++++------ server/waip.js | 28 +++++++++++++++++++++++++++- 6 files changed, 49 insertions(+), 9 deletions(-) diff --git a/public/js/client_waip.js b/public/js/client_waip.js index 3160fd1..59554c7 100644 --- a/public/js/client_waip.js +++ b/public/js/client_waip.js @@ -484,6 +484,7 @@ $('#send_response').on('click', function() { }); socket.on('io.response', function(data) { + console.log(data); // neue Rückmeldungen hinterlegen $('#rueckmeldung').empty(); //{einsatzkraft: "0", maschinist: "0", fuehrungskraft: "0", atemschutz: "0"} diff --git a/server.js b/server.js index 85f1175..abde93a 100644 --- a/server.js +++ b/server.js @@ -35,7 +35,7 @@ var waip = require('./server/waip')(io, sql, async, app_cfg); var socket = require('./server/socket')(io, sql, app_cfg, waip); var udp = require('./server/udp')(app_cfg, waip, sql); var auth = require('./server/auth')(app, app_cfg, sql_cfg, async, bcrypt, passport, io); -var routes = require('./server/routing')(app, sql, app_cfg, passport, auth, udp); +var routes = require('./server/routing')(app, sql, app_cfg, passport, auth, waip, udp); // Server starten webserver.listen(app_cfg.global.https_port, function() { diff --git a/server/routing.js b/server/routing.js index c7da55f..cae0522 100644 --- a/server/routing.js +++ b/server/routing.js @@ -1,4 +1,4 @@ -module.exports = function(app, sql, app_cfg, passport, auth, udp) { +module.exports = function(app, sql, app_cfg, passport, auth, waip, udp) { // get index app.get('/', function(req, res) { @@ -71,6 +71,7 @@ module.exports = function(app, sql, app_cfg, passport, auth, udp) { sql.db_save_response(req.body, function(result){ if (result) { res.redirect('/rmld/' + req.params.waip_uuid); + waip.reuckmeldung_verteilen_by_uuid(req.params.waip_uuid); } else { var err = new Error('Fehler beim senden der Rückmeldung!'); err.status = 501; diff --git a/server/socket.js b/server/socket.js index 0027269..fce935e 100755 --- a/server/socket.js +++ b/server/socket.js @@ -42,6 +42,7 @@ socket_api.emit('CH01', 'me', 'test msg'); sql.db_update_client_status(socket, result_einsatz[0].waip_einsaetze_ID); //vorhanden Rückmeldungen verteilen sql.db_get_response_wache(result_einsatz[0].waip_einsaetze_ID, function(result){ + console.log('response_wache: ' + result); if (result) { waip.reuckmeldung_verteilen(result_einsatz[0].waip_einsaetze_ID, result); }; diff --git a/server/sql_qry.js b/server/sql_qry.js index 703f6a3..0fd1570 100644 --- a/server/sql_qry.js +++ b/server/sql_qry.js @@ -693,15 +693,15 @@ module.exports = function(db, async, app_cfg) { }; function db_get_response_wache(waip_einsaetze_id, wachen_nr, callback) { - db.all(`SELECT response_json FROM waip_response WHERE waip_einsaetze_id = ?`, [waip_einsaetze_id], function (err, rows) { + db.all(`SELECT response_json FROM waip_response WHERE waip_uuid = (select uuid from waip_einsaetze where id = ?)`, [waip_einsaetze_id], function (err, rows) { if (err == null && rows) { // temporaere Variablen var itemsProcessed = 0; var response_wache = {}; - response_wache.einsatzkraft = 0; - response_wache.maschinist = 0; - response_wache.fuehrungskraft = 0; - response_wache.atemschutz = 0; + response_wache.einsatzkraft = false; + response_wache.maschinist = false; + response_wache.fuehrungskraft = false; + response_wache.atemschutz = false; // callback-function fuer absgeschlossene Schleife function loop_done(response_wache) { callback && callback(response_wache); @@ -769,6 +769,16 @@ module.exports = function(db, async, app_cfg) { }); }; + function db_get_waipid_by_uuid(waip_uuid, callback){ + db.get(`SELECT id FROM WAIP_EINSAETZE WHERE e.uuid like ?`, [waip_uuid], function(err, row) { + if (err == null && row) { + callback && callback(row.id); + } else { + callback && callback(null); + }; + }); + }; + return { db_einsatz_speichern: db_einsatz_speichern, db_einsatz_laden: db_einsatz_laden, @@ -803,7 +813,8 @@ module.exports = function(db, async, app_cfg) { db_save_response: db_save_response, db_get_response_gesamter_einsatz: db_get_response_gesamter_einsatz, db_get_response_wache: db_get_response_wache, - db_get_einsatzdaten_by_uuid: db_get_einsatzdaten_by_uuid + db_get_einsatzdaten_by_uuid: db_get_einsatzdaten_by_uuid, + db_get_waipid_by_uuid:db_get_waipid_by_uuid }; }; diff --git a/server/waip.js b/server/waip.js index 86d78fa..f86e47d 100644 --- a/server/waip.js +++ b/server/waip.js @@ -69,7 +69,32 @@ module.exports = function(io, sql, async, app_cfg) { }); }; + function reuckmeldung_verteilen_by_uuid(waip_uuid) { + sql.db_get_waipid_by_uuid(waip_uuid, function(waip_id) { + console.log('rueckmeldung waip_id: '+waip_id); + sql.db_get_einsatzwachen(waip_id, function(data) { + console.log(data); + if (data) { + + data.forEach(function(row) { + // fuer jede Wache(row.room) die verbundenen Sockets(Clients) ermitteln und Einsatz verteilen + var room_stockets = io.sockets.adapter.rooms[row.room]; + if (typeof room_stockets !== 'undefined') { + Object.keys(room_stockets.sockets).forEach(function(socket_id) { + io.sockets.to(socket_id).emit('io.response', result) + sql.db_log('WAIP', 'Rückmeldung ' + result + ' an Socket ' + socket_id + ' gesendet'); + }); + }; + }); + } else { + sql.db_log('Fehler-WAIP', 'Fehler: Wache für waip_id ' + waip_id + ' nicht vorhanden, Rückmeldung konnte nicht verteilt werden!'); + }; + }); + }); + }; + function reuckmeldung_verteilen(waip_id, result) { + console.log('rueckmeldung alt: '+waip_id + ' ' + result); sql.db_get_einsatzwachen(waip_id, function(data) { if (data) { data.forEach(function(row) { @@ -267,6 +292,7 @@ module.exports = function(io, sql, async, app_cfg) { return { einsatz_speichern: einsatz_speichern, einsatz_verteilen: einsatz_verteilen, - reuckmeldung_verteilen: reuckmeldung_verteilen + reuckmeldung_verteilen: reuckmeldung_verteilen, + reuckmeldung_verteilen_by_uuid: reuckmeldung_verteilen_by_uuid }; };