update Do 28. Mai 17:01:01 CEST 2020
This commit is contained in:
parent
28c2f07409
commit
c6af610fc4
@ -18,7 +18,7 @@ module.exports = function (io, sql, app_cfg, waip) {
|
||||
//TODO pruefen ob Verbindung mit passendem Geheimnis und aus IP-Bereich, das Ergebnis loggen
|
||||
|
||||
// in Liste der Clients mit aufnehmen
|
||||
sql.db_update_client_status(socket, 'api');
|
||||
sql.db_client_update_status(socket, 'api');
|
||||
// Neuen Einsatz speichern
|
||||
socket.on('new_waip', function (data) {
|
||||
waip.einsatz_speichern(data);
|
||||
|
||||
@ -120,7 +120,7 @@ module.exports = function (app, sql, uuidv4, app_cfg, passport, auth, waip, udp)
|
||||
|
||||
// /waip nach /waip/0 umleiten
|
||||
app.get('/waip', function (req, res) {
|
||||
sql.db_get_alle_wachen(function (data) {
|
||||
sql.db_wache_get_all(function (data) {
|
||||
res.render('overviews/overview_waip', {
|
||||
public: app_cfg.public,
|
||||
title: 'Alarmmonitor',
|
||||
@ -157,7 +157,7 @@ module.exports = function (app, sql, uuidv4, app_cfg, passport, auth, waip, udp)
|
||||
|
||||
// Dasboard-Uebersicht
|
||||
app.get('/dbrd', function (req, res) {
|
||||
sql.db_get_active_waips(function (data) {
|
||||
sql.db_einsatz_get_active(function (data) {
|
||||
res.render('overviews/overview_dbrd', {
|
||||
public: app_cfg.public,
|
||||
title: 'Dashboard',
|
||||
@ -170,7 +170,7 @@ module.exports = function (app, sql, uuidv4, app_cfg, passport, auth, waip, udp)
|
||||
// Dasboard fuer einen Einsatz
|
||||
app.get('/dbrd/:dbrd_uuid', function (req, res, next) {
|
||||
var dbrd_uuid = req.params.dbrd_uuid;
|
||||
sql.db_einsatz_uuid_vorhanden(dbrd_uuid, function (wache) {
|
||||
sql.db_einsatz_check_uuid(dbrd_uuid, function (wache) {
|
||||
if (wache) {
|
||||
res.render('dbrd', {
|
||||
public: app_cfg.public,
|
||||
@ -208,7 +208,7 @@ module.exports = function (app, sql, uuidv4, app_cfg, passport, auth, waip, udp)
|
||||
|
||||
var waip_uuid = req.params.waip_uuid;
|
||||
var rmld_uuid = req.params.rmld_uuid;
|
||||
sql.db_get_einsatzdaten_by_uuid(waip_uuid, function (einsatzdaten) {
|
||||
sql.db_einsatz_get_by_uuid(waip_uuid, function (einsatzdaten) {
|
||||
if (einsatzdaten) {
|
||||
sql.db_user_check_permission(req.user, einsatzdaten.id, function (valid) {
|
||||
if (!valid) {
|
||||
@ -258,7 +258,7 @@ module.exports = function (app, sql, uuidv4, app_cfg, passport, auth, waip, udp)
|
||||
|
||||
// verbundene Clients anzeigen
|
||||
app.get('/adm_show_clients', auth.ensureAdmin, function (req, res) {
|
||||
sql.db_get_active_clients(function (data) {
|
||||
sql.db_client_get_connected(function (data) {
|
||||
res.render('admin/adm_show_clients', {
|
||||
public: app_cfg.public,
|
||||
title: 'Verbundene PCs/Benutzer',
|
||||
@ -270,7 +270,7 @@ module.exports = function (app, sql, uuidv4, app_cfg, passport, auth, waip, udp)
|
||||
|
||||
// laufende Einsaetze anzeigen
|
||||
app.get('/adm_show_missions', auth.ensureAdmin, function (req, res) {
|
||||
sql.db_get_active_waips(function (data) {
|
||||
sql.db_einsatz_get_active(function (data) {
|
||||
res.render('admin/adm_show_missions', {
|
||||
public: app_cfg.public,
|
||||
title: 'Akutelle Einsätze',
|
||||
|
||||
@ -35,7 +35,7 @@ module.exports = function (io, sql, app_cfg, waip) {
|
||||
};
|
||||
});
|
||||
// in Statusüberischt speichern
|
||||
sql.db_update_client_status(socket, null);
|
||||
sql.db_client_update_status(socket, null);
|
||||
});
|
||||
} else {
|
||||
sql.db_log('ERROR', 'Fehler: Wachnnummer ' + wachen_id + 'nicht vorhanden!');
|
||||
@ -63,7 +63,7 @@ module.exports = function (io, sql, app_cfg, waip) {
|
||||
socket.on('dbrd', function (uuid) {
|
||||
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) {
|
||||
sql.db_einsatz_check_uuid(uuid, function (dbrd_uuid) {
|
||||
// wenn die Wachennummer vorhanden dann weiter
|
||||
if (dbrd_uuid) {
|
||||
// Socket-Room beitreiten
|
||||
@ -72,7 +72,7 @@ module.exports = function (io, sql, app_cfg, waip) {
|
||||
//letzten Einsatz verteilen
|
||||
waip.dbrd_verteilen(dbrd_uuid.uuid, socket);
|
||||
// in Statusüberischt speichern
|
||||
sql.db_update_client_status(socket, dbrd_uuid.uuid);
|
||||
sql.db_client_update_status(socket, dbrd_uuid.uuid);
|
||||
});
|
||||
} else {
|
||||
sql.db_log('ERROR', 'Fehler: Dashboard ' + dbrd_uuid.uuid + 'nicht (mehr) vorhanden!');
|
||||
|
||||
@ -149,26 +149,182 @@ module.exports = function (db, uuidv4, app_cfg) {
|
||||
});
|
||||
};
|
||||
|
||||
function db_einsatz_laden(waip_id, wachen_id, callback) {
|
||||
db.get('SELECT e.id, 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 FROM WAIP_EINSAETZE e ' +
|
||||
'left join ' +
|
||||
'(SELECT waip_einsaetze_id, waip_wachen_id, group_concat(einsatzmittel) AS em_alarmiert FROM WAIP_EINSATZMITTEL WHERE waip_einsaetze_id = ? and waip_wachen_id = ? GROUP BY waip_wachen_id, waip_einsaetze_id) em1 ' +
|
||||
'ON em1.waip_einsaetze_id = e.ID ' +
|
||||
'LEFT JOIN ' +
|
||||
'(SELECT waip_einsaetze_id, group_concat(einsatzmittel) AS em_weitere FROM waip_einsatzmittel WHERE waip_einsaetze_id = ? and waip_wachen_id <> ? GROUP BY waip_einsaetze_id) em0 ' +
|
||||
'ON em0.waip_einsaetze_id = e.ID ' +
|
||||
'WHERE e.id LIKE ? ' +
|
||||
'ORDER BY e.id DESC LIMIT 1', [waip_id, wachen_id, waip_id, wachen_id, waip_id],
|
||||
function (err, row) {
|
||||
if (err == null && row) {
|
||||
callback && callback(row);
|
||||
function db_einsatz_check_uuid(uuid, callback) {
|
||||
// Einsatz mit dieser UUID vorhanden?
|
||||
db.get('select uuid from waip_einsaetze where uuid like ?', [uuid], function (err, row) {
|
||||
if (err == null && row) {
|
||||
callback && callback(row);
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
function db_einsatz_get_by_waipid(waip_id, wachen_nr, user_id, callback) {
|
||||
// vorsichtshalber nochmals id pruefen
|
||||
if (isNaN(waip_id) || isNaN(wachen_nr)) {
|
||||
callback && callback(null);
|
||||
} else {
|
||||
var len = wachen_nr.toString().length
|
||||
// wachen_nr muss 2, 4 oder 6 Zeichen lang sein
|
||||
if (parseInt(wachen_nr) != 0 && len != 2 && len != 4 && len != 6 && len == null) {
|
||||
callback && callback(null);
|
||||
} else {
|
||||
if (parseInt(wachen_nr) == 0) {
|
||||
wachen_nr = '%'
|
||||
};
|
||||
if (isNaN(user_id)) {
|
||||
user_id = app_cfg.global.default_time_for_standby;
|
||||
};
|
||||
// je nach laenge andere SQL ausfuehren
|
||||
db.get(`SELECT
|
||||
e.id,
|
||||
e.uuid,
|
||||
DATETIME(e.zeitstempel, 'localtime') zeitstempel,
|
||||
DATETIME(e.zeitstempel, '+' || (
|
||||
SELECT COALESCE(MAX(reset_counter), ?) reset_counter FROM waip_user_config WHERE user_id = ?
|
||||
) || ' minutes', 'localtime') ablaufzeit,
|
||||
e.EINSATZART, e.STICHWORT, e.SONDERSIGNAL, e.OBJEKT, e.ORT,e.ORTSTEIL, e.STRASSE,
|
||||
e.BESONDERHEITEN, e.wgs84_x, e.wgs84_y, e.wgs84_area, em1.EM_ALARMIERT, em0.EM_WEITERE
|
||||
FROM WAIP_EINSAETZE e
|
||||
LEFT JOIN (
|
||||
SELECT waip_einsaetze_id, \'[\' || group_concat(\'{\"name\": \"\' || einsatzmittel || \'\", \"zeit\": \"\' || zeitstempel || \'\"}\') || \']\' AS em_alarmiert
|
||||
FROM WAIP_EINSATZMITTEL WHERE waip_einsaetze_id = ? and waip_wachen_id in (
|
||||
select id from waip_wachen where nr_wache like ?||\'%\')
|
||||
GROUP BY waip_einsaetze_id
|
||||
) em1 ON em1.waip_einsaetze_id = e.ID
|
||||
LEFT JOIN (
|
||||
SELECT waip_einsaetze_id, \'[\' || group_concat(\'{\"name\": \"\' || einsatzmittel || \'\", \"zeit\": \"\' || zeitstempel || \'\"}\') || \']\' AS em_weitere
|
||||
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) {
|
||||
if (err == null && row) {
|
||||
callback && callback(row);
|
||||
} else {
|
||||
callback && callback(null);
|
||||
}
|
||||
});
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
function db_einsatz_get_by_uuid(waip_uuid, callback) {
|
||||
db.get(`SELECT e.id, e.uuid, e.ZEITSTEMPEL, e.EINSATZART, e.STICHWORT, e.SONDERSIGNAL, e.OBJEKT, e.ORT,
|
||||
e.ORTSTEIL, e.STRASSE, e.BESONDERHEITEN, e.wgs84_x, e.wgs84_y, e.wgs84_area FROM WAIP_EINSAETZE e
|
||||
WHERE e.uuid like ?`, [waip_uuid], function (err, row) {
|
||||
if (err == null && row) {
|
||||
console.log(row.uuid);
|
||||
console.log(row.id);
|
||||
db.all(`SELECT e.einsatzmittel, e.status FROM waip_einsatzmittel e
|
||||
WHERE e.waip_einsaetze_id = ?`, [row.id], function (err, rows) {
|
||||
if (err == null && rows) {
|
||||
var einsatzdaten = row;
|
||||
einsatzdaten.einsatzmittel = rows;
|
||||
db.all(`SELECT DISTINCT e.waip_wachen_ID, e.wachenname FROM waip_einsatzmittel e
|
||||
WHERE e.waip_einsaetze_id = ?`, [row.id], function (err, wachen) {
|
||||
if (err == null && wachen) {
|
||||
einsatzdaten.wachen = wachen;
|
||||
callback && callback(einsatzdaten);
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
});
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
});
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
function db_einsatz_get_waipid_by_uuid(waip_uuid, callback) {
|
||||
db.get(`SELECT id FROM WAIP_EINSAETZE WHERE uuid like ?`, [waip_uuid], function (err, row) {
|
||||
if (err == null && row) {
|
||||
callback && callback(row.id);
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
function db_einsatz_get_active(callback) {
|
||||
db.all(`select we.uuid, we.einsatzart, we.stichwort, we.ort, we.ortsteil, we.wgs84_area,
|
||||
GROUP_concat(DISTINCT substr( wa.nr_wache, 0, 3 )) a,
|
||||
GROUP_concat(DISTINCT substr( wa.nr_wache, 0, 5 )) b,
|
||||
GROUP_concat(DISTINCT wa.nr_wache) c
|
||||
from waip_einsaetze we
|
||||
left join waip_einsatzmittel em on em.waip_einsaetze_ID = we.id
|
||||
left join waip_wachen wa on wa.id = em.waip_wachen_ID
|
||||
GROUP by we.id
|
||||
ORDER by we.einsatzart, we.stichwort`, function (err, rows) {
|
||||
if (err == null && rows) {
|
||||
callback && callback(rows);
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
function db_einsatz_get_rooms(waip_id, callback) {
|
||||
db.all(`select '0' room
|
||||
union all
|
||||
select w.nr_kreis room from waip_wachen w
|
||||
left join waip_einsatzmittel em on em.wachenname = w.name_wache
|
||||
where em.waip_einsaetze_ID = ? group by w.nr_kreis
|
||||
union all
|
||||
select w.nr_kreis || w.nr_traeger room from waip_wachen w
|
||||
left join waip_einsatzmittel em on em.wachenname = w.name_wache
|
||||
where em.waip_einsaetze_ID = ? group by w.nr_kreis || w.nr_traeger
|
||||
union all
|
||||
select w.nr_wache room from waip_wachen w
|
||||
left join waip_einsatzmittel em on em.wachenname = w.name_wache
|
||||
where em.waip_einsaetze_ID = ? group by w.nr_wache`, [waip_id, waip_id, waip_id],
|
||||
function (err, rows) {
|
||||
if (err == null && rows.length > 0) {
|
||||
callback && callback(rows);
|
||||
} else {
|
||||
callback && callback(null);
|
||||
}
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
function db_einsatz_get_old(minuten, callback) {
|
||||
db.each('SELECT id FROM waip_einsaetze WHERE zeitstempel <= datetime(\'now\',\'-' + minuten + ' minutes\')', function (err, row) {
|
||||
if (err == null && row) {
|
||||
callback && callback(row.id);
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
function db_einsatz_loeschen(id) {
|
||||
db.run(`DELETE FROM waip_einsaetze WHERE id = ?`, [id]);
|
||||
};
|
||||
|
||||
function db_wache_get_all(callback) {
|
||||
db.all(`select 'wache' typ, nr_wache nr, name_wache name from waip_wachen
|
||||
union all
|
||||
select 'traeger' typ, nr_kreis || nr_traeger nr, name_traeger name from waip_wachen group by name_traeger
|
||||
union all
|
||||
select 'kreis' typ, nr_kreis nr, name_kreis name from waip_wachen group by name_kreis
|
||||
order by typ, name`, function (err, rows) {
|
||||
if (err == null && rows.length > 0) {
|
||||
callback && callback(rows);
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
function db_wache_vorhanden(content, callback) {
|
||||
// wenn content keine Nummer ist, abbrechen
|
||||
if (isNaN(content)) {
|
||||
@ -222,140 +378,6 @@ module.exports = function (db, uuidv4, app_cfg) {
|
||||
};
|
||||
};
|
||||
|
||||
function db_einsatz_uuid_vorhanden(uuid, callback) {
|
||||
// Einsatz mit dieser UUID vorhanden?
|
||||
db.get('select uuid from waip_einsaetze where uuid like ?', [uuid], function (err, row) {
|
||||
if (err == null && row) {
|
||||
callback && callback(row);
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
function db_wache_id_ermitteln(content, callback) {
|
||||
db.each('select waip_wachen_ID from waip_einsatzmittel where waip_einsaetze_ID = ? ' +
|
||||
'and waip_wachen_ID not null group by waip_wachen_ID', [content],
|
||||
function (err, row) {
|
||||
if (err == null && row) {
|
||||
callback && callback(row.waip_wachen_ID);
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
function db_get_einsatz_rooms(waip_id, callback) {
|
||||
db.all(`select '0' room
|
||||
union all
|
||||
select w.nr_kreis room from waip_wachen w
|
||||
left join waip_einsatzmittel em on em.wachenname = w.name_wache
|
||||
where em.waip_einsaetze_ID = ? group by w.nr_kreis
|
||||
union all
|
||||
select w.nr_kreis || w.nr_traeger room from waip_wachen w
|
||||
left join waip_einsatzmittel em on em.wachenname = w.name_wache
|
||||
where em.waip_einsaetze_ID = ? group by w.nr_kreis || w.nr_traeger
|
||||
union all
|
||||
select w.nr_wache room from waip_wachen w
|
||||
left join waip_einsatzmittel em on em.wachenname = w.name_wache
|
||||
where em.waip_einsaetze_ID = ? group by w.nr_wache`, [waip_id, waip_id, waip_id],
|
||||
function (err, rows) {
|
||||
if (err == null && rows.length > 0) {
|
||||
callback && callback(rows);
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
function db_get_alte_einsaetze(minuten, callback) {
|
||||
db.each('SELECT id FROM waip_einsaetze WHERE zeitstempel <= datetime(\'now\',\'-' + minuten + ' minutes\')', function (err, row) {
|
||||
if (err == null && row) {
|
||||
callback && callback(row.id);
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
function db_einsatz_loeschen(id) {
|
||||
db.run(`DELETE FROM waip_einsaetze WHERE id = ?`, [id]);
|
||||
};
|
||||
|
||||
function db_get_alle_wachen(callback) {
|
||||
db.all(`select 'wache' typ, nr_wache nr, name_wache name from waip_wachen
|
||||
union all
|
||||
select 'traeger' typ, nr_kreis || nr_traeger nr, name_traeger name from waip_wachen group by name_traeger
|
||||
union all
|
||||
select 'kreis' typ, nr_kreis nr, name_kreis name from waip_wachen group by name_kreis
|
||||
order by typ, name`, function (err, rows) {
|
||||
if (err == null && rows.length > 0) {
|
||||
callback && callback(rows);
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
function db_get_einsatzdaten(waip_id, wachen_nr, user_id, callback) {
|
||||
// vorsichtshalber nochmals id pruefen
|
||||
if (isNaN(waip_id) || isNaN(wachen_nr)) {
|
||||
callback && callback(null);
|
||||
} else {
|
||||
var len = wachen_nr.toString().length
|
||||
// wachen_nr muss 2, 4 oder 6 Zeichen lang sein
|
||||
if (parseInt(wachen_nr) != 0 && len != 2 && len != 4 && len != 6 && len == null) {
|
||||
callback && callback(null);
|
||||
} else {
|
||||
if (parseInt(wachen_nr) == 0) {
|
||||
wachen_nr = '%'
|
||||
};
|
||||
if (isNaN(user_id)) {
|
||||
user_id = app_cfg.global.default_time_for_standby;
|
||||
};
|
||||
// je nach laenge andere SQL ausfuehren
|
||||
db.get(`SELECT
|
||||
e.id,
|
||||
e.uuid,
|
||||
DATETIME(e.zeitstempel, 'localtime') zeitstempel,
|
||||
DATETIME(e.zeitstempel, '+' || (
|
||||
SELECT COALESCE(MAX(reset_counter), ?) reset_counter FROM waip_user_config WHERE user_id = ?
|
||||
) || ' minutes', 'localtime') ablaufzeit,
|
||||
e.EINSATZART, e.STICHWORT, e.SONDERSIGNAL, e.OBJEKT, e.ORT,e.ORTSTEIL, e.STRASSE,
|
||||
e.BESONDERHEITEN, e.wgs84_x, e.wgs84_y, e.wgs84_area, em1.EM_ALARMIERT, em0.EM_WEITERE
|
||||
FROM WAIP_EINSAETZE e
|
||||
LEFT JOIN (
|
||||
SELECT waip_einsaetze_id, \'[\' || group_concat(\'{\"name\": \"\' || einsatzmittel || \'\", \"zeit\": \"\' || zeitstempel || \'\"}\') || \']\' AS em_alarmiert
|
||||
FROM WAIP_EINSATZMITTEL WHERE waip_einsaetze_id = ? and waip_wachen_id in (
|
||||
select id from waip_wachen where nr_wache like ?||\'%\')
|
||||
GROUP BY waip_einsaetze_id
|
||||
) em1 ON em1.waip_einsaetze_id = e.ID
|
||||
LEFT JOIN (
|
||||
SELECT waip_einsaetze_id, \'[\' || group_concat(\'{\"name\": \"\' || einsatzmittel || \'\", \"zeit\": \"\' || zeitstempel || \'\"}\') || \']\' AS em_weitere
|
||||
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) {
|
||||
if (err == null && row) {
|
||||
callback && callback(row);
|
||||
} else {
|
||||
callback && callback(null);
|
||||
}
|
||||
});
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
function db_client_delete(socket) {
|
||||
db.run('DELETE FROM waip_clients ' +
|
||||
'WHERE socket_id = ?', socket.id);
|
||||
};
|
||||
|
||||
function db_tts_einsatzmittel(einsatzmittel, callback) {
|
||||
//{"name": "FL CB 16/23-01", "zeit": "17:16"},{"name": "FL CB 16/11-01", "zeit": "17:16"},{"name": "FL CB 16/11-01", "zeit": "17:16"},{"name": "FL CB 16/11-01", "zeit": "17:16"},{"name": "FL CB 16/11-01", "zeit": "17:16"},{"name": "FL CB 16/11-01", "zeit": "17:16"},{"name": "FL CB 16/11-01", "zeit": "17:16"}
|
||||
var tmp = einsatzmittel.name.match(/(\d\d\-\d\d)/g);
|
||||
@ -375,17 +397,7 @@ module.exports = function (db, uuidv4, app_cfg) {
|
||||
};
|
||||
};
|
||||
|
||||
function db_socket_get_by_id(content, callback) {
|
||||
db.get('select * from waip_clients where socket_id = ? ', [content], function (err, row) {
|
||||
if (err == null && row) {
|
||||
callback && callback(row);
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
function db_update_client_status(socket, client_status) {
|
||||
function db_client_update_status(socket, client_status) {
|
||||
//console.log(socket);
|
||||
var user_name = socket.request.user.user;
|
||||
var user_permissions = socket.request.user.permissions;
|
||||
@ -427,7 +439,22 @@ module.exports = function (db, uuidv4, app_cfg) {
|
||||
WHERE socket_id=\'` + socket_id + `\'`);*/
|
||||
};
|
||||
|
||||
function db_check_client_waipid(socketId, waip_id, callback) {
|
||||
function db_client_get_connected(callback) {
|
||||
db.all(`select * from waip_clients`, function (err, rows) {
|
||||
if (err == null && rows) {
|
||||
callback && callback(rows);
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
function db_client_delete(socket) {
|
||||
db.run('DELETE FROM waip_clients ' +
|
||||
'WHERE socket_id = ?', socket.id);
|
||||
};
|
||||
|
||||
function db_client_check_waip_id(socketId, waip_id, callback) {
|
||||
db.get('SELECT client_status id from waip_clients where socket_id like ?', [socketId], function (err, row) {
|
||||
if (err == null && row) {
|
||||
if (row.id == waip_id) {
|
||||
@ -473,8 +500,19 @@ module.exports = function (db, uuidv4, app_cfg) {
|
||||
});
|
||||
};
|
||||
|
||||
function db_get_active_clients(callback) {
|
||||
db.all(`select * from waip_clients`, function (err, rows) {
|
||||
function db_socket_get_by_id(content, callback) {
|
||||
db.get('select * from waip_clients where socket_id = ? ', [content], function (err, row) {
|
||||
if (err == null && row) {
|
||||
callback && callback(row);
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
function db_socket_get_all_to_standby(callback) {
|
||||
db.all(`select socket_id from waip_clients
|
||||
where reset_timestamp < DATETIME(\'now\')`, function (err, rows) {
|
||||
if (err == null && rows) {
|
||||
callback && callback(rows);
|
||||
} else {
|
||||
@ -483,18 +521,30 @@ module.exports = function (db, uuidv4, app_cfg) {
|
||||
});
|
||||
};
|
||||
|
||||
function db_get_active_waips(callback) {
|
||||
db.all(`select we.uuid, we.einsatzart, we.stichwort, we.ort, we.ortsteil, we.wgs84_area,
|
||||
GROUP_concat(DISTINCT substr( wa.nr_wache, 0, 3 )) a,
|
||||
GROUP_concat(DISTINCT substr( wa.nr_wache, 0, 5 )) b,
|
||||
GROUP_concat(DISTINCT wa.nr_wache) c
|
||||
from waip_einsaetze we
|
||||
left join waip_einsatzmittel em on em.waip_einsaetze_ID = we.id
|
||||
left join waip_wachen wa on wa.id = em.waip_wachen_ID
|
||||
GROUP by we.id
|
||||
ORDER by we.einsatzart, we.stichwort`, function (err, rows) {
|
||||
if (err == null && rows) {
|
||||
callback && callback(rows);
|
||||
function db_user_set_config(user_id, reset_counter, callback) {
|
||||
// reset_counter validieren, ansonsten default setzen
|
||||
if (!(reset_counter >= 1 && reset_counter <= app_cfg.global.time_to_delete_waip)) {
|
||||
reset_counter = app_cfg.global.default_time_for_standby;
|
||||
};
|
||||
db.run((`INSERT OR REPLACE INTO waip_user_config
|
||||
(id, user_id, reset_counter)
|
||||
VALUES (
|
||||
(select ID from waip_user_config where user_id like \'` + user_id + `\'),
|
||||
\'` + user_id + `\',
|
||||
\'` + reset_counter + `\')`), function (err) {
|
||||
if (err == null) {
|
||||
callback && callback();
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
function db_user_get_config(user_id, callback) {
|
||||
db.get(`SELECT reset_counter FROM waip_user_config
|
||||
WHERE user_id = ?`, [user_id], function (err, row) {
|
||||
if (err == null && row) {
|
||||
callback && callback(row.reset_counter);
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
@ -539,47 +589,6 @@ module.exports = function (db, uuidv4, app_cfg) {
|
||||
};
|
||||
};
|
||||
|
||||
function db_user_get_config(user_id, callback) {
|
||||
db.get(`SELECT reset_counter FROM waip_user_config
|
||||
WHERE user_id = ?`, [user_id], function (err, row) {
|
||||
if (err == null && row) {
|
||||
callback && callback(row.reset_counter);
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
function db_user_set_config(user_id, reset_counter, callback) {
|
||||
// reset_counter validieren, ansonsten default setzen
|
||||
if (!(reset_counter >= 1 && reset_counter <= app_cfg.global.time_to_delete_waip)) {
|
||||
reset_counter = app_cfg.global.default_time_for_standby;
|
||||
};
|
||||
db.run((`INSERT OR REPLACE INTO waip_user_config
|
||||
(id, user_id, reset_counter)
|
||||
VALUES (
|
||||
(select ID from waip_user_config where user_id like \'` + user_id + `\'),
|
||||
\'` + user_id + `\',
|
||||
\'` + reset_counter + `\')`), function (err) {
|
||||
if (err == null) {
|
||||
callback && callback();
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
function db_socket_get_all_to_standby(callback) {
|
||||
db.all(`select socket_id from waip_clients
|
||||
where reset_timestamp < DATETIME(\'now\')`, function (err, rows) {
|
||||
if (err == null && rows) {
|
||||
callback && callback(rows);
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
function db_rmld_save(responseobj, callback) {
|
||||
|
||||
// Rueckmeldung aufarbeiten
|
||||
@ -759,47 +768,6 @@ module.exports = function (db, uuidv4, app_cfg) {
|
||||
});
|
||||
};
|
||||
|
||||
function db_get_einsatzdaten_by_uuid(waip_uuid, callback) {
|
||||
db.get(`SELECT e.id, e.uuid, e.ZEITSTEMPEL, e.EINSATZART, e.STICHWORT, e.SONDERSIGNAL, e.OBJEKT, e.ORT,
|
||||
e.ORTSTEIL, e.STRASSE, e.BESONDERHEITEN, e.wgs84_x, e.wgs84_y, e.wgs84_area FROM WAIP_EINSAETZE e
|
||||
WHERE e.uuid like ?`, [waip_uuid], function (err, row) {
|
||||
if (err == null && row) {
|
||||
console.log(row.uuid);
|
||||
console.log(row.id);
|
||||
db.all(`SELECT e.einsatzmittel, e.status FROM waip_einsatzmittel e
|
||||
WHERE e.waip_einsaetze_id = ?`, [row.id], function (err, rows) {
|
||||
if (err == null && rows) {
|
||||
var einsatzdaten = row;
|
||||
einsatzdaten.einsatzmittel = rows;
|
||||
db.all(`SELECT DISTINCT e.waip_wachen_ID, e.wachenname FROM waip_einsatzmittel e
|
||||
WHERE e.waip_einsaetze_id = ?`, [row.id], function (err, wachen) {
|
||||
if (err == null && wachen) {
|
||||
einsatzdaten.wachen = wachen;
|
||||
callback && callback(einsatzdaten);
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
});
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
});
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
function db_get_waipid_by_uuid(waip_uuid, callback) {
|
||||
db.get(`SELECT id FROM WAIP_EINSAETZE WHERE uuid like ?`, [waip_uuid], function (err, row) {
|
||||
if (err == null && row) {
|
||||
callback && callback(row.id);
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
function db_vmtl_get_list(waip_id, callback) {
|
||||
// Pruefen ob fuer eine Wache in diesem Einsatz ein Twitter-Account mit Liste hinterlegt ist
|
||||
db.get(`select t.waip_wachen_id, t.tw_account_id, t.tw_account_list from waip_vmlt_tw_wachen t
|
||||
@ -829,56 +797,30 @@ module.exports = function (db, uuidv4, app_cfg) {
|
||||
|
||||
return {
|
||||
db_einsatz_speichern: db_einsatz_speichern,
|
||||
db_einsatz_laden: db_einsatz_laden,
|
||||
db_einsatz_ermitteln: db_einsatz_ermitteln,
|
||||
db_get_alte_einsaetze: db_get_alte_einsaetze,
|
||||
|
||||
db_get_einsatzdaten_by_uuid: db_get_einsatzdaten_by_uuid,
|
||||
db_get_einsatz_rooms: db_get_einsatz_rooms,
|
||||
|
||||
|
||||
db_einsatz_uuid_vorhanden: db_einsatz_uuid_vorhanden,
|
||||
|
||||
db_get_einsatzdaten: db_get_einsatzdaten,
|
||||
db_get_waipid_by_uuid: db_get_waipid_by_uuid,
|
||||
|
||||
|
||||
db_get_active_waips: db_get_active_waips,
|
||||
|
||||
|
||||
db_get_alle_wachen: db_get_alle_wachen,
|
||||
db_wache_vorhanden: db_wache_vorhanden,
|
||||
db_wache_id_ermitteln: db_wache_id_ermitteln,
|
||||
|
||||
|
||||
|
||||
db_einsatz_check_uuid: db_einsatz_check_uuid,
|
||||
db_einsatz_get_by_waipid: db_einsatz_get_by_waipid,
|
||||
db_einsatz_get_by_uuid: db_einsatz_get_by_uuid,
|
||||
db_einsatz_get_waipid_by_uuid: db_einsatz_get_waipid_by_uuid,
|
||||
db_einsatz_get_active: db_einsatz_get_active,
|
||||
db_einsatz_get_rooms: db_einsatz_get_rooms,
|
||||
db_einsatz_get_old: db_einsatz_get_old,
|
||||
db_einsatz_loeschen: db_einsatz_loeschen,
|
||||
|
||||
|
||||
db_update_client_status: db_update_client_status,
|
||||
db_get_active_clients: db_get_active_clients,
|
||||
db_client_delete: db_client_delete,
|
||||
|
||||
|
||||
db_wache_get_all: db_wache_get_all,
|
||||
db_wache_vorhanden: db_wache_vorhanden,
|
||||
db_tts_einsatzmittel: db_tts_einsatzmittel,
|
||||
|
||||
|
||||
|
||||
db_check_client_waipid: db_check_client_waipid,
|
||||
db_client_update_status: db_client_update_status,
|
||||
db_client_get_connected: db_client_get_connected,
|
||||
db_client_delete: db_client_delete,
|
||||
db_client_check_waip_id: db_client_check_waip_id,
|
||||
db_log: db_log,
|
||||
db_log_get_all: db_log_get_all,
|
||||
|
||||
|
||||
|
||||
|
||||
db_socket_get_by_id: db_socket_get_by_id,
|
||||
db_socket_get_all_to_standby: db_socket_get_all_to_standby,
|
||||
|
||||
db_user_set_config: db_user_set_config,
|
||||
db_user_get_config: db_user_get_config,
|
||||
db_user_get_all: db_user_get_all,
|
||||
db_user_check_permission: db_user_check_permission,
|
||||
|
||||
db_rmld_save: db_rmld_save,
|
||||
db_rmld_get_fuer_wache: db_rmld_get_fuer_wache,
|
||||
db_rmld_get_by_rmlduuid: db_rmld_get_by_rmlduuid,
|
||||
@ -890,7 +832,7 @@ module.exports = function (db, uuidv4, app_cfg) {
|
||||
/* alte abfragen
|
||||
|
||||
|
||||
|
||||
db_einsatz_laden: db_einsatz_laden,
|
||||
db_list_wachen: db_list_wachen,
|
||||
db_wache_nr_ermitteln: db_wache_nr_ermitteln,
|
||||
db_list_traeger: db_list_traeger,
|
||||
@ -899,9 +841,21 @@ db_list_wachen: db_list_wachen,
|
||||
db_get_response_gesamter_einsatz: db_get_response_gesamter_einsatz,
|
||||
db_update_response: db_update_response,
|
||||
db_client_save: db_client_save,
|
||||
db_wache_id_ermitteln: db_wache_id_ermitteln,
|
||||
|
||||
|
||||
|
||||
function db_wache_id_ermitteln(content, callback) {
|
||||
db.each('select waip_wachen_ID from waip_einsatzmittel where waip_einsaetze_ID = ? ' +
|
||||
'and waip_wachen_ID not null group by waip_wachen_ID', [content],
|
||||
function (err, row) {
|
||||
if (err == null && row) {
|
||||
callback && callback(row.waip_wachen_ID);
|
||||
} else {
|
||||
callback && callback(null);
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
function db_get_response_gesamter_einsatz(waip_einsaetze_id, callback) {
|
||||
@ -916,6 +870,26 @@ db_list_wachen: db_list_wachen,
|
||||
};
|
||||
|
||||
|
||||
function db_einsatz_laden(waip_id, wachen_id, callback) {
|
||||
db.get('SELECT e.id, 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 FROM WAIP_EINSAETZE e ' +
|
||||
'left join ' +
|
||||
'(SELECT waip_einsaetze_id, waip_wachen_id, group_concat(einsatzmittel) AS em_alarmiert FROM WAIP_EINSATZMITTEL WHERE waip_einsaetze_id = ? and waip_wachen_id = ? GROUP BY waip_wachen_id, waip_einsaetze_id) em1 ' +
|
||||
'ON em1.waip_einsaetze_id = e.ID ' +
|
||||
'LEFT JOIN ' +
|
||||
'(SELECT waip_einsaetze_id, group_concat(einsatzmittel) AS em_weitere FROM waip_einsatzmittel WHERE waip_einsaetze_id = ? and waip_wachen_id <> ? GROUP BY waip_einsaetze_id) em0 ' +
|
||||
'ON em0.waip_einsaetze_id = e.ID ' +
|
||||
'WHERE e.id LIKE ? ' +
|
||||
'ORDER BY e.id DESC LIMIT 1', [waip_id, wachen_id, waip_id, wachen_id, waip_id],
|
||||
function (err, row) {
|
||||
if (err == null && row) {
|
||||
callback && callback(row);
|
||||
} else {
|
||||
callback && callback(null);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
*/
|
||||
|
||||
//veraltet
|
||||
|
||||
@ -8,7 +8,7 @@ module.exports = function (io, sql, brk, async, app_cfg) {
|
||||
sql.db_log('WAIP', 'DEBUG: Neuer Einsatz mit der ID ' + waip_id);
|
||||
// nach dem Speichern anhand der waip_id die beteiligten Wachennummern zum Einsatz ermitteln
|
||||
// FIXME: Einsatz nur verteilen, falls dieser nicht bereits so angezeigt wurde (Doppelalarmierung vermeiden)
|
||||
sql.db_get_einsatz_rooms(waip_id, function (socket_rooms) {
|
||||
sql.db_einsatz_get_rooms(waip_id, function (socket_rooms) {
|
||||
if (socket_rooms) {
|
||||
socket_rooms.forEach(function (rooms) {
|
||||
// fuer jede Wache(rooms.room) die verbundenen Sockets(Clients) ermitteln und den Einsatz verteilen
|
||||
@ -46,7 +46,7 @@ module.exports = function (io, sql, brk, async, app_cfg) {
|
||||
function waip_verteilen(waip_id, socket, wachen_nr) {
|
||||
// Einsatzdaten für eine Wache aus Datenbank laden
|
||||
var user_obj = socket.request.user;
|
||||
sql.db_get_einsatzdaten(waip_id, wachen_nr, user_obj.id, function (einsatzdaten) {
|
||||
sql.db_einsatz_get_by_waipid(waip_id, wachen_nr, user_obj.id, function (einsatzdaten) {
|
||||
if (einsatzdaten) {
|
||||
// Berechtigung ueberpruefen
|
||||
sql.db_user_check_permission(user_obj, waip_id, function (valid) {
|
||||
@ -60,7 +60,7 @@ module.exports = function (io, sql, brk, async, app_cfg) {
|
||||
// Einsatz senden
|
||||
socket.emit('io.neuerEinsatz', einsatzdaten);
|
||||
sql.db_log('WAIP', 'Einsatz ' + waip_id + ' fuer Wache ' + wachen_nr + ' an Socket ' + socket.id + ' gesendet');
|
||||
sql.db_update_client_status(socket, waip_id);
|
||||
sql.db_client_update_status(socket, waip_id);
|
||||
// Sound erstellen
|
||||
tts_erstellen(app_cfg, socket.id, einsatzdaten, function (tts) {
|
||||
if (tts) {
|
||||
@ -75,16 +75,16 @@ module.exports = function (io, sql, brk, async, app_cfg) {
|
||||
// Standby senden
|
||||
socket.emit('io.standby', null);
|
||||
sql.db_log('WAIP', 'Kein Einsatz fuer Wache ' + wachen_nr + ' vorhanden, Standby an Socket ' + socket.id + ' gesendet.');
|
||||
sql.db_update_client_status(socket, null);
|
||||
sql.db_client_update_status(socket, null);
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
function rmld_verteilen_by_uuid(waip_uuid, rmld_uuid) {
|
||||
// Einsatz-ID mittels Einsatz-UUID ermitteln
|
||||
sql.db_get_waipid_by_uuid(waip_uuid, function (waip_id) {
|
||||
sql.db_einsatz_get_waipid_by_uuid(waip_uuid, function (waip_id) {
|
||||
// am Einsatz beteilite Socket-Räume ermitteln
|
||||
sql.db_get_einsatz_rooms(waip_id, function (socket_rooms) {
|
||||
sql.db_einsatz_get_rooms(waip_id, function (socket_rooms) {
|
||||
if (socket_rooms) {
|
||||
socket_rooms.forEach(function (row) {
|
||||
// fuer jede Wache(row.room) die verbundenen Sockets(Clients) ermitteln und Standby senden
|
||||
@ -95,7 +95,7 @@ module.exports = function (io, sql, brk, async, app_cfg) {
|
||||
sql.db_rmld_get_by_rmlduuid(rmld_uuid, function (rmld_obj) {
|
||||
if (rmld_obj) {
|
||||
// Rückmeldung an Clients/Räume senden, wenn richtiger Einsatz angezeigt wird
|
||||
sql.db_check_client_waipid(socket_id, waip_id, function (same_id) {
|
||||
sql.db_client_check_waip_id(socket_id, waip_id, function (same_id) {
|
||||
if (same_id) {
|
||||
var socket = io.of('/waip').connected[socket_id];
|
||||
socket.emit('io.response', rmld_obj);
|
||||
@ -270,16 +270,16 @@ module.exports = function (io, sql, brk, async, app_cfg) {
|
||||
socket.emit('io.standby', null);
|
||||
socket.emit('io.stopaudio', null);
|
||||
sql.db_log('WAIP', 'Standby an Socket ' + socket.id + ' gesendet');
|
||||
sql.db_update_client_status(socket, null);
|
||||
sql.db_client_update_status(socket, null);
|
||||
});
|
||||
};
|
||||
});
|
||||
// Nach alten Einsaetzen suchen und diese ggf. loeschen
|
||||
sql.db_get_alte_einsaetze(app_cfg.global.time_to_delete_waip, function (waip_id) {
|
||||
sql.db_einsatz_get_old(app_cfg.global.time_to_delete_waip, function (waip_id) {
|
||||
if (waip_id) {
|
||||
sql.db_log('WAIP', 'Einsatz mit der ID ' + waip_id + ' ist veraltet und kann gelöscht werden.')
|
||||
//beteiligte Wachen ermitteln
|
||||
sql.db_get_einsatz_rooms(waip_id, function (data) {
|
||||
sql.db_einsatz_get_rooms(waip_id, function (data) {
|
||||
if (data) {
|
||||
data.forEach(function (row) {
|
||||
// fuer jede Wache(row.room) die verbundenen Sockets(Clients) ermitteln und Standby senden
|
||||
@ -288,12 +288,12 @@ module.exports = function (io, sql, brk, async, app_cfg) {
|
||||
Object.keys(room_sockets.sockets).forEach(function (socket_id) {
|
||||
// Standby senden
|
||||
var socket = io.of('/waip').connected[socket_id];
|
||||
sql.db_check_client_waipid(socket.id, waip_id, function (same_id) {
|
||||
sql.db_client_check_waip_id(socket.id, waip_id, function (same_id) {
|
||||
if (same_id) {
|
||||
socket.emit('io.standby', null);
|
||||
socket.emit('io.stopaudio', null);
|
||||
sql.db_log('WAIP', 'Standby an Socket ' + socket.id + ' gesendet');
|
||||
sql.db_update_client_status(socket, null);
|
||||
sql.db_client_update_status(socket, null);
|
||||
};
|
||||
});
|
||||
});
|
||||
@ -327,7 +327,7 @@ module.exports = function (io, sql, brk, async, app_cfg) {
|
||||
|
||||
function dbrd_verteilen(dbrd_uuid, socket) {
|
||||
console.log(JSON.stringify(dbrd_uuid));
|
||||
sql.db_get_einsatzdaten_by_uuid(dbrd_uuid, function(einsatzdaten) {
|
||||
sql.db_einsatz_get_by_uuid(dbrd_uuid, function(einsatzdaten) {
|
||||
if (einsatzdaten) {
|
||||
sql.db_user_check_permission(socket.request.user, einsatzdaten.id, function(valid) {
|
||||
if (!valid) {
|
||||
@ -339,13 +339,13 @@ module.exports = function (io, sql, brk, async, app_cfg) {
|
||||
};
|
||||
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, dbrd_uuid);
|
||||
sql.db_client_update_status(socket, dbrd_uuid);
|
||||
});
|
||||
} else {
|
||||
// Standby senden
|
||||
socket.emit('io.standby', null);
|
||||
sql.db_log('DBRD', 'Der angefragte Einsatz ' + dbrd_uuid + ' ist nicht - oder nicht mehr - vorhanden!, Standby an Socket ' + socket.id + ' gesendet.');
|
||||
sql.db_update_client_status(socket, null);
|
||||
sql.db_client_update_status(socket, null);
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
Loading…
Reference in New Issue
Block a user