update Do 18. Jun 00:31:01 CEST 2020
This commit is contained in:
parent
319dd32461
commit
1c7cf8c164
205
server/waip.js
205
server/waip.js
@ -305,19 +305,11 @@ module.exports = function (io, sql, fs, brk, async, app_cfg) {
|
|||||||
sql.db_log('WAIP', 'Einsatz mit der ID ' + waip.id + ' ist veraltet und kann gelöscht werden.')
|
sql.db_log('WAIP', 'Einsatz mit der ID ' + waip.id + ' ist veraltet und kann gelöscht werden.')
|
||||||
// beteiligte Wachen zum Einsatz ermitteln
|
// beteiligte Wachen zum Einsatz ermitteln
|
||||||
sql.db_einsatz_get_rooms(waip.id, function (data) {
|
sql.db_einsatz_get_rooms(waip.id, function (data) {
|
||||||
console.log(data);
|
|
||||||
|
|
||||||
if (data) {
|
if (data) {
|
||||||
data.forEach(function (row) {
|
data.forEach(function (row) {
|
||||||
// fuer jede Wache (row.room) die verbundenen Sockets(Clients) ermitteln und Standby senden
|
// fuer jede Wache (row.room) die verbundenen Sockets(Clients) ermitteln und Standby senden
|
||||||
var room_sockets = io.nsps['/waip'].adapter.rooms[row.room];
|
var room_sockets = io.nsps['/waip'].adapter.rooms[row.room];
|
||||||
console.log(row.room);
|
|
||||||
|
|
||||||
console.log(room_sockets);
|
|
||||||
if (typeof room_sockets !== 'undefined') {
|
if (typeof room_sockets !== 'undefined') {
|
||||||
// FIXME gelöschter einsatz wird noch als Wachalarm angezeigt
|
|
||||||
console.log('room_sockets');
|
|
||||||
console.log(room_sockets.sockets);
|
|
||||||
Object.keys(room_sockets.sockets).forEach(function (socket_id) {
|
Object.keys(room_sockets.sockets).forEach(function (socket_id) {
|
||||||
// Standby senden
|
// Standby senden
|
||||||
var socket = io.of('/waip').connected[socket_id];
|
var socket = io.of('/waip').connected[socket_id];
|
||||||
@ -333,108 +325,107 @@ module.exports = function (io, sql, fs, brk, async, app_cfg) {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
});
|
sql.db_socket_get_by_room(waip.uuid, function (socket_ids) {
|
||||||
sql.db_socket_get_by_room(waip.uuid, function (socket_ids) {
|
// Dashboards trennen, deren Einsatz geloescht wurde
|
||||||
// Dashboards trennen, deren Einsatz geloescht wurde
|
// TODO TEST: Dashboard-Trennen-Funktion testen
|
||||||
// TODO TEST: Dashboard-Trennen-Funktion testen
|
if (socket_ids) {
|
||||||
if (socket_ids) {
|
socket_ids.forEach(function (row) {
|
||||||
socket_ids.forEach(function (row) {
|
var socket = io.of('/dbrd').connected[row.socket_id];
|
||||||
var socket = io.of('/dbrd').connected[row.socket_id];
|
socket.emit('io.deleted', null);
|
||||||
socket.emit('io.deleted', null);
|
sql.db_log('DBRD', 'Dashboard mit dem Socket ' + socket.id + ' getrennt, da Einsatz gelöscht.');
|
||||||
sql.db_log('DBRD', 'Dashboard mit dem Socket ' + socket.id + ' getrennt, da Einsatz gelöscht.');
|
sql.db_client_update_status(socket, null);
|
||||||
sql.db_client_update_status(socket, null);
|
});
|
||||||
});
|
|
||||||
};
|
|
||||||
});
|
|
||||||
sql.db_rmld_get_for_export(waip.uuid, function (full_rmld) {
|
|
||||||
// beteiligte Wachen aus den Einsatz-Rueckmeldungen filtern
|
|
||||||
var arry_wachen = full_rmld.map(a => a.wache_nr);
|
|
||||||
sql.db_export_get_for_rmld(arry_wachen, function (export_data) {
|
|
||||||
|
|
||||||
console.log(arry_wachen)
|
|
||||||
// SQL gibt ist eine Schliefe (db.each), fuer jedes Ergebnis wird eine CSV/Mail erstellt
|
|
||||||
if (export_data) {
|
|
||||||
var part_rmld = full_rmld;
|
|
||||||
// FIXME full_rmld.filter(obj => obj.wache_id.startsWith(export_data.export_filter));
|
|
||||||
// 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 opts = {
|
|
||||||
csv_col
|
|
||||||
};
|
|
||||||
try {
|
|
||||||
var csv = parse(part_rmld, opts);
|
|
||||||
// CSV Dateiname und Pfad festlegen
|
|
||||||
var csv_filename = export_data.export_name.replace(/[|&;$%@"<>()+,]/g, '');
|
|
||||||
csv_filename = csv_filename.replace(/ /g,"_");
|
|
||||||
csv_filename = 'einsatz_' + part_rmld[0].einsatznummer + '_export_' + csv_filename + '.csv';
|
|
||||||
csv_path = process.cwd() + app_cfg.rmld.backup_path;
|
|
||||||
//+ csv_filename;
|
|
||||||
console.log(csv_filename);
|
|
||||||
// CSV in Backup-Ordner speichern, falls aktiviert
|
|
||||||
if (app_cfg.rmld.backup_to_file) {
|
|
||||||
// Ordner erstellen
|
|
||||||
fs.mkdir(csv_path, {
|
|
||||||
recursive: true
|
|
||||||
}, function (err) {
|
|
||||||
if (err) {
|
|
||||||
sql.db_log('EXPORT', 'Fehler beim Erstellen des Backup-Ordners: ' + err);
|
|
||||||
};
|
|
||||||
// CSV speichern
|
|
||||||
fs.writeFile(csv_path + csv_filename, csv, function (err) {
|
|
||||||
if (err) {
|
|
||||||
console.log(err);
|
|
||||||
sql.db_log('EXPORT', 'Fehler beim speichern der Export-CSV: ' + err);
|
|
||||||
};
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
// CSV per Mail versenden, falls aktiviert
|
|
||||||
if (app_cfg.rmld.backup_to_mail) {
|
|
||||||
// pruefen ob Mail plausibel ist
|
|
||||||
var validmail = /\S+@\S+\.\S+/;
|
|
||||||
if (validmail.test(export_data.export_recipient)) {
|
|
||||||
// Mail-Server
|
|
||||||
var transport = nodemailer.createTransport({
|
|
||||||
host: app_cfg.rmld.mailserver_host,
|
|
||||||
port: app_cfg.rmld.mailserver_port,
|
|
||||||
secure: app_cfg.rmld.secure_mail,
|
|
||||||
auth: {
|
|
||||||
user: app_cfg.rmld.mail_user,
|
|
||||||
pass: app_cfg.rmld.mail_pass
|
|
||||||
}
|
|
||||||
});
|
|
||||||
var mail_message = {
|
|
||||||
from: 'Wachalarm-IP-Web' + app_cfg.public.company + ' <' + app_cfg.rmld.mail_from +'>',
|
|
||||||
to: export_data.export_recipient,
|
|
||||||
subject: 'Automatischer Export Wachalarm-IP-Web - ' + export_data.export_name + ' - Einsatz ' + part_rmld[0].einsatznummer,
|
|
||||||
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.public.company,
|
|
||||||
attachments: [{
|
|
||||||
filename: csv_filename,
|
|
||||||
content: csv
|
|
||||||
}]
|
|
||||||
};
|
|
||||||
transport.sendMail(mail_message, function (err, info) {
|
|
||||||
if (err) {
|
|
||||||
sql.db_log('EXPORT', 'Fehler beim senden der Export-Mail an ' + export_data.export_recipient + ': ' + err);
|
|
||||||
} else {
|
|
||||||
sql.db_log('EXPORT', 'Mail an ' + export_data.export_recipient + ' gesendet: ' + JSON.stringify(info));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
sql.db_log('EXPORT', 'Fehler beim versenden der Export-Mail an ' + export_data.export_recipient + ' - keine richtige Mail-Adresse!');
|
|
||||||
};
|
|
||||||
};
|
|
||||||
} catch (err) {
|
|
||||||
sql.db_log('EXPORT', 'Fehler beim erstellen der Export-CSV: ' + err);
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
// alte Rueckmeldungen loeschen
|
sql.db_rmld_get_for_export(waip.uuid, function (full_rmld) {
|
||||||
sql.db_rmld_loeschen(waip.uuid);
|
// beteiligte Wachen aus den Einsatz-Rueckmeldungen filtern
|
||||||
|
var arry_wachen = full_rmld.map(a => a.wache_nr);
|
||||||
|
sql.db_export_get_for_rmld(arry_wachen, function (export_data) {
|
||||||
|
|
||||||
|
console.log(arry_wachen)
|
||||||
|
// SQL gibt ist eine Schliefe (db.each), fuer jedes Ergebnis wird eine CSV/Mail erstellt
|
||||||
|
if (export_data) {
|
||||||
|
var part_rmld = full_rmld;
|
||||||
|
// FIXME
|
||||||
|
//var part_rmld = full_rmld.filter(obj => String(obj.wache_nr).startsWith(String(export_data.export_filter)));
|
||||||
|
// 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 opts = {
|
||||||
|
csv_col
|
||||||
|
};
|
||||||
|
try {
|
||||||
|
var csv = parse(part_rmld, opts);
|
||||||
|
// CSV Dateiname und Pfad festlegen
|
||||||
|
var csv_filename = export_data.export_name.replace(/[|&;$%@"<>()+,]/g, '');
|
||||||
|
csv_filename = csv_filename.replace(/ /g, "_");
|
||||||
|
csv_filename = 'einsatz_' + part_rmld[0].einsatznummer + '_export_' + csv_filename + '.csv';
|
||||||
|
csv_path = process.cwd() + app_cfg.rmld.backup_path;
|
||||||
|
// CSV in Backup-Ordner speichern, falls aktiviert
|
||||||
|
if (app_cfg.rmld.backup_to_file) {
|
||||||
|
// Ordner erstellen
|
||||||
|
fs.mkdir(csv_path, {
|
||||||
|
recursive: true
|
||||||
|
}, function (err) {
|
||||||
|
if (err) {
|
||||||
|
sql.db_log('EXPORT', 'Fehler beim Erstellen des Backup-Ordners: ' + err);
|
||||||
|
};
|
||||||
|
// CSV speichern
|
||||||
|
fs.writeFile(csv_path + csv_filename, csv, function (err) {
|
||||||
|
if (err) {
|
||||||
|
sql.db_log('EXPORT', 'Fehler beim speichern der Export-CSV: ' + err);
|
||||||
|
};
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
// CSV per Mail versenden, falls aktiviert
|
||||||
|
if (app_cfg.rmld.backup_to_mail) {
|
||||||
|
// pruefen ob Mail plausibel ist
|
||||||
|
var validmail = /\S+@\S+\.\S+/;
|
||||||
|
if (validmail.test(export_data.export_recipient)) {
|
||||||
|
// Mail-Server
|
||||||
|
var transport = nodemailer.createTransport({
|
||||||
|
host: app_cfg.rmld.mailserver_host,
|
||||||
|
port: app_cfg.rmld.mailserver_port,
|
||||||
|
secure: app_cfg.rmld.secure_mail,
|
||||||
|
auth: {
|
||||||
|
user: app_cfg.rmld.mail_user,
|
||||||
|
pass: app_cfg.rmld.mail_pass
|
||||||
|
}
|
||||||
|
});
|
||||||
|
var mail_message = {
|
||||||
|
from: 'Wachalarm-IP-Web' + app_cfg.public.company + ' <' + app_cfg.rmld.mail_from + '>',
|
||||||
|
to: export_data.export_recipient,
|
||||||
|
subject: 'Automatischer Export Wachalarm-IP-Web - ' + export_data.export_name + ' - Einsatz ' + part_rmld[0].einsatznummer,
|
||||||
|
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.public.company,
|
||||||
|
attachments: [{
|
||||||
|
filename: csv_filename,
|
||||||
|
content: csv
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
transport.sendMail(mail_message, function (err, info) {
|
||||||
|
if (err) {
|
||||||
|
sql.db_log('EXPORT', 'Fehler beim senden der Export-Mail an ' + export_data.export_recipient + ': ' + err);
|
||||||
|
} else {
|
||||||
|
sql.db_log('EXPORT', 'Mail an ' + export_data.export_recipient + ' gesendet: ' + JSON.stringify(info));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
sql.db_log('EXPORT', 'Fehler beim versenden der Export-Mail an ' + export_data.export_recipient + ' - keine richtige Mail-Adresse!');
|
||||||
|
};
|
||||||
|
};
|
||||||
|
} catch (err) {
|
||||||
|
sql.db_log('EXPORT', 'Fehler beim erstellen der Export-CSV: ' + err);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
});
|
||||||
|
// alte Rueckmeldungen loeschen
|
||||||
|
sql.db_rmld_loeschen(waip.uuid);
|
||||||
|
});
|
||||||
|
// alten Einsatz loeschen
|
||||||
|
sql.db_einsatz_loeschen(waip.id);
|
||||||
|
sql.db_log('WAIP', 'Einsatz-Daten zu Einsatz ' + waip.id + ' gelöscht.');
|
||||||
});
|
});
|
||||||
// alten Einsatz loeschen
|
|
||||||
sql.db_einsatz_loeschen(waip.id);
|
|
||||||
sql.db_log('WAIP', 'Einsatz-Daten zu Einsatz ' + waip.id + ' gelöscht.');
|
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user