update Fr 12. Jun 21:31:01 CEST 2020
This commit is contained in:
parent
1e2f09d3f5
commit
500516e784
@ -30,7 +30,7 @@ module.exports = function (io, sql, app_cfg, waip) {
|
|||||||
var app_id = raw_data.app_id;
|
var app_id = raw_data.app_id;
|
||||||
// nur speichern wenn app_id nicht eigenen globalen app_id entspricht
|
// nur speichern wenn app_id nicht eigenen globalen app_id entspricht
|
||||||
if (app_id != app_cfg.global.app_id) {
|
if (app_id != app_cfg.global.app_id) {
|
||||||
waip.einsatz_speichern(data, app_id);
|
waip.waip_speichern(data, app_id);
|
||||||
sql.db_log('API', 'Neuer Wachalarm von ' + remote_ip + ': ' + data);
|
sql.db_log('API', 'Neuer Wachalarm von ' + remote_ip + ': ' + data);
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
@ -119,7 +119,7 @@ module.exports = function (io, sql, app_cfg, waip) {
|
|||||||
var app_id = raw_data.app_id;
|
var app_id = raw_data.app_id;
|
||||||
// nur speichern wenn app_id nicht eigenen globalen app_id entspricht
|
// nur speichern wenn app_id nicht eigenen globalen app_id entspricht
|
||||||
if (app_id != app_cfg.global.app_id) {
|
if (app_id != app_cfg.global.app_id) {
|
||||||
waip.einsatz_speichern(data);
|
waip.waip_speichern(data, app_id);
|
||||||
sql.db_log('API', 'Neuer Wachalarm von ' + app_cfg.endpoint.host + ': ' + data);
|
sql.db_log('API', 'Neuer Wachalarm von ' + app_cfg.endpoint.host + ': ' + data);
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|||||||
@ -25,7 +25,7 @@ module.exports = function(app_cfg, waip, sql) {
|
|||||||
udp_server.on('message', function(message, remote) {
|
udp_server.on('message', function(message, remote) {
|
||||||
if (isValidJSON(message)) {
|
if (isValidJSON(message)) {
|
||||||
sql.db_log('WAIP', 'Neuer Einsatz von ' + remote.address + ':' + remote.port + ': ' + message);
|
sql.db_log('WAIP', 'Neuer Einsatz von ' + remote.address + ':' + remote.port + ': ' + message);
|
||||||
waip.einsatz_speichern(message, 'udp');
|
waip.waip_speichern(message, 'udp');
|
||||||
} else {
|
} else {
|
||||||
sql.db_log('Fehler-WAIP', 'Fehler: Einsatz von ' + remote.address + ':' + remote.port + ' Fehlerhaft: ' + message);
|
sql.db_log('Fehler-WAIP', 'Fehler: Einsatz von ' + remote.address + ':' + remote.port + ' Fehlerhaft: ' + message);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,16 +2,17 @@ module.exports = function (io, sql, fs, brk, async, app_cfg, api, proof) {
|
|||||||
|
|
||||||
// Module laden
|
// Module laden
|
||||||
const json2csv = require('json2csv');
|
const json2csv = require('json2csv');
|
||||||
const sendmail = require('sendmail')({silent: true});
|
const sendmail = require('sendmail')({
|
||||||
|
silent: true
|
||||||
|
});
|
||||||
|
|
||||||
function einsatz_speichern(einsatz_rohdaten, app_id) {
|
function waip_speichern(einsatz_rohdaten, app_id) {
|
||||||
// Einsatzmeldung in Datenbank speichern und verteilen
|
// Einsatzmeldung in Datenbank speichern und verteilen
|
||||||
proof.validate_waip(einsatz_rohdaten, function (valid) {
|
proof.validate_waip(einsatz_rohdaten, function (valid) {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
|
|
||||||
// Einsatzmeldung (JSON) speichern
|
// Einsatzmeldung (JSON) speichern
|
||||||
sql.db_einsatz_speichern(einsatz_rohdaten, function (waip_id) {
|
sql.db_einsatz_speichern(einsatz_rohdaten, function (waip_id) {
|
||||||
sql.db_log('WAIP', 'DEBUG: Neuer Einsatz mit der ID ' + waip_id);
|
sql.db_log('DEBUG', 'Neuen Einsatz mit der ID ' + waip_id + ' gespeichert.');
|
||||||
// nach dem Speichern anhand der waip_id die beteiligten Wachennummern zum Einsatz ermitteln
|
// nach dem Speichern anhand der waip_id die beteiligten Wachennummern zum Einsatz ermitteln
|
||||||
sql.db_einsatz_get_rooms(waip_id, function (socket_rooms) {
|
sql.db_einsatz_get_rooms(waip_id, function (socket_rooms) {
|
||||||
if (socket_rooms) {
|
if (socket_rooms) {
|
||||||
@ -27,11 +28,12 @@ module.exports = function (io, sql, fs, brk, async, app_cfg, api, proof) {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
// wenn kein Raum (keine Wache) in der DB hinterlegt ist, dann Einsatz direkt wieder loeschen
|
||||||
sql.db_log('Fehler-WAIP', 'Fehler: Keine Wache für den Einsatz mit der ID ' + waip_id + ' vorhanden! Einsatz wird gelöscht!');
|
sql.db_log('Fehler-WAIP', 'Fehler: Keine Wache für den Einsatz mit der ID ' + waip_id + ' vorhanden! Einsatz wird gelöscht!');
|
||||||
sql.db_einsatz_loeschen(waip_id);
|
sql.db_einsatz_loeschen(waip_id);
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
// pruefen ob für die beteiligten Wachen eine Verteiler-Liste hinterlegt ist, falls ja, Rueckmeldungs-Link senden
|
// pruefen ob für die beteiligten Wachen eine Verteiler-Liste hinterlegt ist, falls ja: Rueckmeldungs-Link senden
|
||||||
sql.db_vmtl_get_list(waip_id, function (list) {
|
sql.db_vmtl_get_list(waip_id, function (list) {
|
||||||
if (list) {
|
if (list) {
|
||||||
brk.alert_vmtl_list(list, function (result) {
|
brk.alert_vmtl_list(list, function (result) {
|
||||||
@ -47,13 +49,13 @@ module.exports = function (io, sql, fs, brk, async, app_cfg, api, proof) {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
// Einsatzdaten per API weiterleiten (entweder zum Server oder zum verbunden Client)
|
// Einsatzdaten per API weiterleiten (entweder zum Server oder zum verbunden Client)
|
||||||
|
// TODO TEST: Api WAIP
|
||||||
api.server_to_client_new_waip(einsatz_rohdaten, app_id);
|
api.server_to_client_new_waip(einsatz_rohdaten, app_id);
|
||||||
api.client_to_server_new_waip(einsatz_rohdaten, app_id);
|
api.client_to_server_new_waip(einsatz_rohdaten, app_id);
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
function waip_verteilen(waip_id, socket, wachen_nr) {
|
function waip_verteilen(waip_id, socket, wachen_nr) {
|
||||||
// Einsatzdaten für eine Wache aus Datenbank laden und an Client verteilen
|
// Einsatzdaten für eine Wache aus Datenbank laden und an Client verteilen
|
||||||
var user_obj = socket.request.user;
|
var user_obj = socket.request.user;
|
||||||
@ -116,6 +118,7 @@ module.exports = function (io, sql, fs, brk, async, app_cfg, api, proof) {
|
|||||||
callback && callback(result);
|
callback && callback(result);
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
// TODO TEST: Api WAIP
|
||||||
api.server_to_client_new_rmld(rueckmeldung, app_id);
|
api.server_to_client_new_rmld(rueckmeldung, app_id);
|
||||||
api.client_to_server_new_rmld(rueckmeldung, app_id);
|
api.client_to_server_new_rmld(rueckmeldung, app_id);
|
||||||
};
|
};
|
||||||
@ -389,24 +392,24 @@ module.exports = function (io, sql, fs, brk, async, app_cfg, api, proof) {
|
|||||||
// beteiligte Wachen aus den Einsatz-Rueckmeldungen filtern
|
// beteiligte Wachen aus den Einsatz-Rueckmeldungen filtern
|
||||||
var arry_wachen = full_rmld.map(a => a.wache_nr);
|
var arry_wachen = full_rmld.map(a => a.wache_nr);
|
||||||
sql.db_export_get_for_rmld(arry_wachen, function (export_data) {
|
sql.db_export_get_for_rmld(arry_wachen, function (export_data) {
|
||||||
// db.each
|
// SQL gibt ist eine Schliefe (db.each), fuer jedes Ergebnis wird eine CSV/Mail erstellt
|
||||||
// FIXME remove alle daten aus full_rmld die nicht mit export_filter übereinstimmen (left von)
|
var part_rmld = full_rmld.filter(obj => obj.wache_id.startsWith(export_data.export_filter));
|
||||||
|
|
||||||
// CSV-Spalten definieren
|
// CSV-Spalten definieren
|
||||||
var csv_col = ['id', 'einsatznummer', 'waip_uuid', 'rmld_uuid', 'alias', 'einsatzkraft', 'maschinist', 'fuehrungskraft', 'agt', 'set_time', 'arrival_time', 'wache_id', 'wache_nr', 'wache_name'];
|
var csv_col = ['id', 'einsatznummer', 'waip_uuid', 'rmld_uuid', 'alias', 'einsatzkraft', 'maschinist', 'fuehrungskraft', 'agt', 'set_time', 'arrival_time', 'wache_id', 'wache_nr', 'wache_name'];
|
||||||
json2csv({
|
json2csv({
|
||||||
data: full_rmld,
|
data: part_rmld,
|
||||||
fields: csv_col
|
fields: csv_col
|
||||||
}, function (err, csv) {
|
}, function (err, csv) {
|
||||||
// TODO TEST: CSV und Mail
|
// TODO TEST: CSV und Mail
|
||||||
if (err) {
|
if (err) {
|
||||||
sql.db_log('EXPORT', 'Fehler beim erstellen der Export-CSV: ' + err);
|
sql.db_log('EXPORT', 'Fehler beim erstellen der Export-CSV: ' + err);
|
||||||
} else {
|
} else {
|
||||||
|
// CSV Dateiname und Pfad festlegen
|
||||||
|
var csv_filename = part_rmld[0].einsatznummer + '_export_rmld_' + export_data.export_name + '.csv';
|
||||||
|
csv_filename = process.cwd() + app_cfg.global.backup_path + csv_filename;
|
||||||
// CSV in Backup-Ordner speichern, falls aktiviert
|
// CSV in Backup-Ordner speichern, falls aktiviert
|
||||||
if (app_cfg.global.backup_rmld_to_file) {
|
if (app_cfg.global.backup_rmld_to_file) {
|
||||||
// CSV Dateiname und Pfad festlegen
|
|
||||||
var csv_filename = full_rmld.einsatznummer + '_export_rmld_' + export_data.export_name + '.csv';
|
|
||||||
csv_filename = process.cwd() + app_cfg.global.backup_path + csv_filename;
|
|
||||||
// CSV speichern
|
// CSV speichern
|
||||||
fs.writeFile(csv_filename, csv, function (err) {
|
fs.writeFile(csv_filename, csv, function (err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
@ -414,17 +417,34 @@ module.exports = function (io, sql, fs, brk, async, app_cfg, api, proof) {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
// FIXME CSV per Mail versenden, falls aktiviert
|
// CSV per Mail versenden, falls aktiviert
|
||||||
if (app_cfg.global.backup_rmld_to_mail) {
|
if (app_cfg.global.backup_rmld_to_mail) {
|
||||||
|
// pruefen ob Mail plausibel ist
|
||||||
|
var validmail = /\S+@\S+\.\S+/;
|
||||||
|
if (validmail.test(export_data.export_recipient)) {
|
||||||
|
var mail_from = 'keineantwort@' + app_cfg.global.url.replace(/(^\w+:|^)\/\//, '');
|
||||||
|
var mail_subject = 'Automatischer Export Rückmeldungen Wachalarm-IP - ' + export_data.export_name + ' - Einsatz ' + part_rmld[0].einsatznummer;
|
||||||
|
var mail_html = 'Hallo,<br><br> anbei der automatische Export aller Einsatz-Rückmeldungen für den Einsatz ' + part_rmld[0].einsatznummer + '<br><br>Mit freundlichen Grüßen<br><br>' + app_cfg.global.company;
|
||||||
|
sendmail({
|
||||||
|
from: mail_from,
|
||||||
|
to: export_data.export_recipient,
|
||||||
|
subject: mail_subject,
|
||||||
|
html: mail_html,
|
||||||
|
attachments: [{
|
||||||
|
filename: csv_filename,
|
||||||
|
content: csv
|
||||||
|
}]
|
||||||
|
}, function (err, reply) {
|
||||||
|
if (!err) {
|
||||||
|
sql.db_log('EXPORT', 'Mail an ' + export_data.mail_subject + ' gesendet - ' + reply);
|
||||||
|
} else {
|
||||||
|
sql.db_log('EXPORT', 'Fehler beim senden der Export-Mail an ' + export_data.mail_subject + ' - ' + err + '; ' + err.stack);
|
||||||
|
};
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
sql.db_log('EXPORT', 'Fehler beim versenden der Export-Mail an ' + export_data.mail_subject + ' - keine richtige Mail-Adresse!');
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
//export_data.export_recipient if valide mail-adresse
|
|
||||||
|
|
||||||
|
|
||||||
//export_data.export_name
|
|
||||||
//export_data.export_text
|
|
||||||
//export_data.export_filter
|
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -445,7 +465,7 @@ module.exports = function (io, sql, fs, brk, async, app_cfg, api, proof) {
|
|||||||
if (!data) {
|
if (!data) {
|
||||||
fs.unlink(process.cwd() + app_cfg.global.soundpath + file, function (err) {
|
fs.unlink(process.cwd() + app_cfg.global.soundpath + file, function (err) {
|
||||||
if (err) return sql.db_log('Fehler-WAIP', err);
|
if (err) return sql.db_log('Fehler-WAIP', err);
|
||||||
sql.db_log('WAIP', file + ' wurde erfolgreich geloescht');
|
sql.db_log('WAIP', 'Veraltete Sound-Datei ' + file + ' wurde gelöscht.');
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
@ -455,7 +475,7 @@ module.exports = function (io, sql, fs, brk, async, app_cfg, api, proof) {
|
|||||||
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
einsatz_speichern: einsatz_speichern,
|
waip_speichern: waip_speichern,
|
||||||
waip_verteilen: waip_verteilen,
|
waip_verteilen: waip_verteilen,
|
||||||
rmld_speichern: rmld_speichern,
|
rmld_speichern: rmld_speichern,
|
||||||
dbrd_verteilen: dbrd_verteilen,
|
dbrd_verteilen: dbrd_verteilen,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user