update Fr 12. Jun 15:01:02 CEST 2020

This commit is contained in:
Robert Richter 2020-06-12 15:01:02 +02:00
parent 7646c8da19
commit 914e0f8335
2 changed files with 68 additions and 73 deletions

View File

@ -853,37 +853,29 @@ module.exports = function (db, uuidv4, app_cfg) {
}; };
function db_export_get_for_rmld(arry_wachen, callback) { function db_export_get_for_rmld(arry_wachen, callback) {
// saubere String-Werte erstellen
arry_wachen = arry_wachen.map(String);
// Wachen-Nummern um Teil-Nummern fuer Kreis und Treager ergaenzen // Wachen-Nummern um Teil-Nummern fuer Kreis und Treager ergaenzen
var kreis = arry_wachen.map(i=> i.substr(0, 2)); var kreis = arry_wachen.map(i => i.substr(0, 2));
var traeger = arry_wachen.map(i=> i.substr(0, 4)); var traeger = arry_wachen.map(i => i.substr(0, 4));
arry_wachen = arry_wachen.concat(kreis); arry_wachen = arry_wachen.concat(kreis);
arry_wachen = arry_wachen.concat(traeger); arry_wachen = arry_wachen.concat(traeger);
// doppelte Elemente aus Array entfernen // doppelte Elemente aus Array entfernen
arry_wachen = arry_wachen.filter((v, i, a) => a.indexOf(v) === i); arry_wachen = arry_wachen.filter((v, i, a) => a.indexOf(v) === i);
// Leer-String hinzufuegen, um auch Export-Eintraege ohne Filter zu beruecksichtigen
arry_wachen.push("");
// DEBUG
if (app_cfg.global.development) {
db.each(`select * from waip_export console.log('Export-Liste RMLD: ' + JSON.stringify(arry_wachen));
where irgendwas und filte is null`, [content], };
function (err, row) { // Export-Liste auslesen
if (err == null && row) { db.each(`select * from waip_export where export_typ like \'rmld\' and export_filter IN (` + arry_wachen.join(', ') + ` )`, function (err, row) {
callback && callback(row.waip_wachen_ID); if (err == null && row) {
} else { callback && callback(row);
callback && callback(null); } else {
}; callback && callback(null);
}); };
});
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
export_typ TEXT,
export_name TEXT,
export_text TEXT,
export_filter TEXT,
export_recipient TEXT)`);
}; };
return { return {
@ -921,7 +913,7 @@ module.exports = function (db, uuidv4, app_cfg) {
db_rmld_loeschen: db_rmld_loeschen, db_rmld_loeschen: db_rmld_loeschen,
db_vmtl_get_list: db_vmtl_get_list, db_vmtl_get_list: db_vmtl_get_list,
db_vmtl_get_tw_account: db_vmtl_get_tw_account, db_vmtl_get_tw_account: db_vmtl_get_tw_account,
db_export_get_list: db_export_get_list db_export_get_for_rmld: db_export_get_for_rmld
}; };
}; };

View File

@ -387,60 +387,63 @@ module.exports = function (io, sql, fs, brk, async, app_cfg, api, proof) {
// FIXME: Rueckmeldung löschen, und vorher ggf. per Mail versenden bzw. Backup speichern // FIXME: Rueckmeldung löschen, und vorher ggf. per Mail versenden bzw. Backup speichern
sql.db_rmld_get_by_waipuuid(waip.uuid, function (full_rmld) { sql.db_rmld_get_by_waipuuid(waip.uuid, function (full_rmld) {
// beteiligte Wachen aus den Einsatz-Rueckmeldungen filtern // 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) {
map wachennummer in jspn, add 0 // db.each
[52,521204,6103] // TODO gesamte CSV oder nur Teil für wache?
export_data.export_name
export_data.export_text
export_data.export_filter
export_data.export_recipient if valide mail-adresse
jetzt exportliste nach passendem mit filter suchen, dabei distinct wachennr übergeben
db.each jetzt csv erzeugen und versenden
jetzt csv erzeugen und versenden falls kein filter
falls kein filter wenn bkp altiviert, gesamt-csv speichern
wenn bkp altiviert, gesamt-csv speichern
// 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'];
// gesamte CSV erstellen, falls aktiviert // gesamte CSV erstellen, falls aktiviert
CREATE TABLE waip_export (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
export_name TEXT,
export_text TEXT,
export_filter TEXT,
export_recipient TEXT)`);
json2csv({data: full_rmld, fields: csv_col}, function(err, csv) {
if (err) console.log(err);
// CSV in Backup-Ordner speichern, falls aktiviert json2csv({data: full_rmld, fields: csv_col}, function(err, csv) {
fs.writeFile('cars.csv', csv, function(err) { if (err) console.log(err);
if (err) throw err; // CSV in Backup-Ordner speichern, falls aktiviert
console.log('cars file saved'); fs.writeFile('cars.csv', csv, function(err) {
if (err) throw err;
console.log('cars file saved');
});
}); });
// teil-CSV fuer einzelne Wache erstellen
// CSV per Mail versenden, falls aktiviert
// einzelne Wachen
// später löschen, wenn app_cfg.global.backup_rmld false
// Mail-Adressen fuer Wachen zu dieser Einsatz-ID ermitteln, siehe db_vmtl_get_list
// csv an diese Mail-Adressen per Mail senden
// wenn app_cfg.global.mail_rmld is true
}); });
// teil-CSV fuer einzelne Wache erstellen // alte Rueckmeldungen loeschen
db_rmld_loeschen(waip_uuid);
// CSV per Mail versenden, falls aktiviert
// einzelne Wachen
// später löschen, wenn app_cfg.global.backup_rmld false
// Mail-Adressen fuer Wachen zu dieser Einsatz-ID ermitteln, siehe db_vmtl_get_list
// csv an diese Mail-Adressen per Mail senden
// wenn app_cfg.global.mail_rmld is true
db_rmld_loeschen(waip_uuid)
}); });
// Einsatz löschen // alten Einsatz loeschen
sql.db_einsatz_loeschen(waip.id); sql.db_einsatz_loeschen(waip.id);
sql.db_log('WAIP', 'Einsatz-Daten zu Einsatz ' + waip.id + ' gelöscht.'); sql.db_log('WAIP', 'Einsatz-Daten zu Einsatz ' + waip.id + ' gelöscht.');
}; };
}); });
// löschen alter Sounddaten nach alter (15min) und socket-id (nicht mehr verbunden) // loeschen alter Sounddaten nach alter (15min) und socket-id (nicht mehr verbunden)
fs.readdirSync(process.cwd() + app_cfg.global.soundpath).forEach(file => { fs.readdirSync(process.cwd() + app_cfg.global.soundpath).forEach(file => {
// nur die mp3s von alten clients loeschen // nur die mp3s von alten clients loeschen
if (file.substring(0, 4) != 'bell' && file.substring(file.length - 3) == 'mp3' && file.substring(file.length - 8) != '_tmp.mp3') { if (file.substring(0, 4) != 'bell' && file.substring(file.length - 3) == 'mp3' && file.substring(file.length - 8) != '_tmp.mp3') {