Fehlerbehebungen

This commit is contained in:
Robert Richter 2019-05-05 22:14:41 +02:00
parent f162d70a4d
commit 47e5f6927f
2 changed files with 54 additions and 32 deletions

View File

@ -17,17 +17,29 @@ module.exports = function(db, async, app_cfg) {
reset_counter FROM waip_configs WHERE user_id = ` + user_id + `)`; reset_counter FROM waip_configs WHERE user_id = ` + user_id + `)`;
}; };
// Einsätze für die gewählte Wachen_ID ermittel, und Ablaufzeit beachten // Einsätze für die gewählte Wachen_ID ermittel, und Ablaufzeit beachten
console.log(`SELECT waip_einsaetze_ID FROM
(
SELECT em.waip_einsaetze_ID, we.zeitstempel FROM waip_einsatzmittel em
LEFT JOIN waip_wachen wa ON wa.id = em.waip_wachen_id
LEFT JOIN waip_einsaetze we ON we.id = em.waip_einsaetze_ID
WHERE wa.nr_wache LIKE \'` + wachen_id + `\'||\'%\'
GROUP BY em.waip_einsaetze_id
ORDER BY em.waip_einsaetze_id DESC
)
WHERE DATETIME(zeitstempel, \'+\' || ` + select_reset_counter + ` || \' minutes\')
> DATETIME(\'now\')`);
db.all(`SELECT waip_einsaetze_ID FROM db.all(`SELECT waip_einsaetze_ID FROM
( (
SELECT em.waip_einsaetze_id, we.zeitstempel FROM waip_einsatzmittel em SELECT em.waip_einsaetze_ID, we.zeitstempel FROM waip_einsatzmittel em
LEFT JOIN waip_wachen wa ON wa.id = em.waip_wachen_id LEFT JOIN waip_wachen wa ON wa.id = em.waip_wachen_id
LEFT JOIN waip_einsaetze we ON we.id = em.waip_einsaetze_ID LEFT JOIN waip_einsaetze we ON we.id = em.waip_einsaetze_ID
WHERE wa.nr_wache LIKE ?||\'%\' WHERE wa.nr_wache LIKE ?||\'%\'
GROUP BY em.waip_einsaetze_id GROUP BY em.waip_einsaetze_id
ORDER BY em.waip_einsaetze_id DESC ORDER BY em.waip_einsaetze_id DESC
) )
WHERE DATETIME(zeitstempel, \'+\' || ? || \' minutes\') WHERE DATETIME(zeitstempel, \'+\' || ` + select_reset_counter + ` || \' minutes\')
> DATETIME(\'now\')`, [wachen_id, select_reset_counter], > DATETIME(\'now\')`, [wachen_id],
function(err, rows) { function(err, rows) {
if (err == null && rows.length > 0) { if (err == null && rows.length > 0) {
//callback && callback(row.waip_einsaetze_ID); ALT //callback && callback(row.waip_einsaetze_ID); ALT
@ -261,7 +273,7 @@ module.exports = function(db, async, app_cfg) {
}); });
}; };
function db_get_einsatzdaten(waip_id, wachen_nr, callback) { function db_get_einsatzdaten(waip_id, wachen_nr, user_id, callback) {
// vorsichtshalber nochmals id pruefen // vorsichtshalber nochmals id pruefen
if (isNaN(waip_id) || isNaN(wachen_nr)) { if (isNaN(waip_id) || isNaN(wachen_nr)) {
callback && callback(null); callback && callback(null);
@ -274,24 +286,34 @@ module.exports = function(db, async, app_cfg) {
if (parseInt(wachen_nr) == 0) { if (parseInt(wachen_nr) == 0) {
wachen_nr = '%' wachen_nr = '%'
}; };
if (isNaN(user_id)) {
user_id = app_cfg.global.default_time_for_standby;
};
// je nach laenge andere SQL ausfuehren // je nach laenge andere SQL ausfuehren
db.get('SELECT e.EINSATZART, e.STICHWORT, e.SONDERSIGNAL, e.OBJEKT, e.ORT,e.ORTSTEIL, e.STRASSE, e.BESONDERHEITEN, e.wgs84_x, e.wgs84_y, em1.EM_ALARMIERT, em0.EM_WEITERE ' + db.get(`SELECT
'FROM WAIP_EINSAETZE e ' + DATETIME(e.zeitstempel, 'localtime') zeitstempel,
'LEFT JOIN (' + DATETIME(e.zeitstempel, '+' || (
'SELECT waip_einsaetze_id, \'[\' || group_concat(\'{\"name\": \"\' || einsatzmittel || \'\", \"zeit\": \"\' || zeitstempel || \'\"}\') || \']\' AS em_alarmiert ' + SELECT COALESCE(MAX(reset_counter), ?) reset_counter FROM waip_configs WHERE user_id = ?
'FROM WAIP_EINSATZMITTEL WHERE waip_einsaetze_id = ? and waip_wachen_id in ( ' + ) || ' minutes', 'localtime') ablaufzeit,
'select id from waip_wachen where nr_wache like ?||\'%\') ' + e.EINSATZART, e.STICHWORT, e.SONDERSIGNAL, e.OBJEKT, e.ORT,e.ORTSTEIL, e.STRASSE,
'GROUP BY waip_einsaetze_id ' + e.BESONDERHEITEN, e.wgs84_x, e.wgs84_y, em1.EM_ALARMIERT, em0.EM_WEITERE
') em1 ON em1.waip_einsaetze_id = e.ID ' + FROM WAIP_EINSAETZE e
'LEFT JOIN (' + LEFT JOIN (
'SELECT waip_einsaetze_id, \'[\' || group_concat(\'{\"name\": \"\' || einsatzmittel || \'\", \"zeit\": \"\' || zeitstempel || \'\"}\') || \']\' AS em_weitere ' + SELECT waip_einsaetze_id, \'[\' || group_concat(\'{\"name\": \"\' || einsatzmittel || \'\", \"zeit\": \"\' || zeitstempel || \'\"}\') || \']\' AS em_alarmiert
'FROM waip_einsatzmittel WHERE waip_einsaetze_id = ? and waip_wachen_id not in ( ' + FROM WAIP_EINSATZMITTEL WHERE waip_einsaetze_id = ? and waip_wachen_id in (
'select id from waip_wachen where nr_wache like ?||\'%\') ' + select id from waip_wachen where nr_wache like ?||\'%\')
'GROUP BY waip_einsaetze_id ' + GROUP BY waip_einsaetze_id
') em0 ON em0.waip_einsaetze_id = e.ID ' + ) em1 ON em1.waip_einsaetze_id = e.ID
'WHERE e.id LIKE ? ' + LEFT JOIN (
'ORDER BY e.id DESC LIMIT 1', [waip_id, wachen_nr, waip_id, wachen_nr, waip_id], SELECT waip_einsaetze_id, \'[\' || group_concat(\'{\"name\": \"\' || einsatzmittel || \'\", \"zeit\": \"\' || zeitstempel || \'\"}\') || \']\' AS em_weitere
function(err, row) { FROM waip_einsatzmittel WHERE waip_einsaetze_id = ? and waip_wachen_id not in (
select id from waip_wachen where nr_wache like ?||\'%\')
GROUP BY waip_einsaetze_id
) em0 ON em0.waip_einsaetze_id = e.ID
WHERE e.id LIKE ?
ORDER BY e.id DESC LIMIT 1`,
[app_cfg.global.default_time_for_standby, user_id, waip_id, wachen_nr, waip_id, wachen_nr, waip_id], function(err, row) {
console.log(row);
if (err == null && row) { if (err == null && row) {
callback && callback(row); callback && callback(row);
} else { } else {
@ -354,7 +376,7 @@ module.exports = function(db, async, app_cfg) {
var user_agent = socket.request.headers['user-agent']; var user_agent = socket.request.headers['user-agent'];
var client_ip = socket.request.connection.remoteAddress; var client_ip = socket.request.connection.remoteAddress;
var reset_timestamp = socket.request.user.reset_counter; var reset_timestamp = socket.request.user.reset_counter;
if (isNaN(client_status)) { if (isNaN(client_status) || client_status == null) {
client_status = 'Standby'; client_status = 'Standby';
}; };
if (typeof user_name === "undefined") { if (typeof user_name === "undefined") {
@ -366,15 +388,14 @@ module.exports = function(db, async, app_cfg) {
if (typeof reset_timestamp === "undefined") { if (typeof reset_timestamp === "undefined") {
reset_timestamp = app_cfg.global.default_time_for_standby; reset_timestamp = app_cfg.global.default_time_for_standby;
}; };
db.run('UPDATE waip_clients ' + db.run(`UPDATE waip_clients
'SET client_status=\'' + client_status + '\', ' + SET client_status=\'` + client_status + `\',
'client_ip=\'' + client_ip + '\', ' + client_ip=\'` + client_ip + `\',
//'room_name=\'' + room_name + '\', ' + user_name=\'` + user_name + `\',
'user_name=\'' + user_name + '\', ' + user_permissions=\'` + user_permissions + `\',
'user_permissions=\'' + user_permissions + '\', ' + user_agent=\'` + user_agent + `\',
'user_agent=\'' + user_agent + '\', ' + reset_timestamp=(select DATETIME(zeitstempel,\'+\' || ` + reset_timestamp + ` || \' minutes\') from waip_einsaetze where id =\'` + client_status + `\')
'reset_timestamp=(select DATETIME(zeitstempel,\'+\' || ' + reset_timestamp + ' || \' minutes\') from waip_einsaetze where id = ' + client_status + ') ' + WHERE socket_id=\'` + socket_id + `\'`);
'WHERE socket_id=\'' + socket_id + '\'');
}; };
function db_check_client_waipid(socketId, waip_id, callback) { function db_check_client_waipid(socketId, waip_id, callback) {

View File

@ -23,6 +23,7 @@ module.exports = function(io, sql, async, app_cfg) {
// prüfen ob für diese Wache ein Einsatz vorhanden ist // prüfen ob für diese Wache ein Einsatz vorhanden ist
sql.db_einsatz_vorhanden(wachen_id, socket.request.user.id, function(result_einsatz) { sql.db_einsatz_vorhanden(wachen_id, socket.request.user.id, function(result_einsatz) {
if (result_einsatz) { if (result_einsatz) {
console.log(result_einsatz[0].waip_einsaetze_ID);
sql.db_log('WAIP', 'Einsatz ' + result_einsatz[0].waip_einsaetze_ID + ' fuer Wache ' + wachen_id + ' vorhanden'); sql.db_log('WAIP', 'Einsatz ' + result_einsatz[0].waip_einsaetze_ID + ' fuer Wache ' + wachen_id + ' vorhanden');
//letzten Einsatz verteilen //letzten Einsatz verteilen
einsatz_verteilen(result_einsatz[0].waip_einsaetze_ID, socket.id, wachen_id); einsatz_verteilen(result_einsatz[0].waip_einsaetze_ID, socket.id, wachen_id);
@ -72,7 +73,7 @@ module.exports = function(io, sql, async, app_cfg) {
// Einsatz an Client verteilen // Einsatz an Client verteilen
function einsatz_verteilen(waip_id, socket_id, wachen_nr) { function einsatz_verteilen(waip_id, socket_id, wachen_nr) {
// Einsatzdaten für eine Wache aus Datenbank laden // Einsatzdaten für eine Wache aus Datenbank laden
sql.db_get_einsatzdaten(waip_id, wachen_nr, function(einsatzdaten) { sql.db_get_einsatzdaten(waip_id, wachen_nr, io.sockets.sockets[socket_id].request.user.id, function(einsatzdaten) {
if (einsatzdaten) { if (einsatzdaten) {
// Berechtigung ueberpruefen // Berechtigung ueberpruefen
var permissions = io.sockets.sockets[socket_id].request.user.permissions; var permissions = io.sockets.sockets[socket_id].request.user.permissions;