From 914e0f833567faca7b8219428cb68401f7b095c7 Mon Sep 17 00:00:00 2001 From: Robert Richter Date: Fri, 12 Jun 2020 15:01:02 +0200 Subject: [PATCH] update Fr 12. Jun 15:01:02 CEST 2020 --- server/sql_qry.js | 48 ++++++++++-------------- server/waip.js | 93 ++++++++++++++++++++++++----------------------- 2 files changed, 68 insertions(+), 73 deletions(-) diff --git a/server/sql_qry.js b/server/sql_qry.js index af09b9d..3ca84f8 100755 --- a/server/sql_qry.js +++ b/server/sql_qry.js @@ -853,37 +853,29 @@ module.exports = function (db, uuidv4, app_cfg) { }; 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 - var kreis = arry_wachen.map(i=> i.substr(0, 2)); - var traeger = arry_wachen.map(i=> i.substr(0, 4)); + var kreis = arry_wachen.map(i => i.substr(0, 2)); + var traeger = arry_wachen.map(i => i.substr(0, 4)); arry_wachen = arry_wachen.concat(kreis); arry_wachen = arry_wachen.concat(traeger); // doppelte Elemente aus Array entfernen - arry_wachen = arry_wachen.filter((v, i, a) => a.indexOf(v) === i); - - - - - db.each(`select * from waip_export - where irgendwas und filte is null`, [content], - function (err, row) { - if (err == null && row) { - callback && callback(row.waip_wachen_ID); - } 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)`); - - - + 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) { + console.log('Export-Liste RMLD: ' + JSON.stringify(arry_wachen)); + }; + // Export-Liste auslesen + db.each(`select * from waip_export where export_typ like \'rmld\' and export_filter IN (` + arry_wachen.join(', ') + ` )`, function (err, row) { + if (err == null && row) { + callback && callback(row); + } else { + callback && callback(null); + }; + }); }; return { @@ -921,7 +913,7 @@ module.exports = function (db, uuidv4, app_cfg) { db_rmld_loeschen: db_rmld_loeschen, db_vmtl_get_list: db_vmtl_get_list, 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 }; }; diff --git a/server/waip.js b/server/waip.js index 95dd0f1..882c681 100755 --- a/server/waip.js +++ b/server/waip.js @@ -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 sql.db_rmld_get_by_waipuuid(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) { + // db.each + // 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 - - map wachennummer in jspn, add 0 - [52,521204,6103] - - - - jetzt exportliste nach passendem mit filter suchen, dabei distinct wachennr übergeben - db.each - jetzt csv erzeugen und versenden - falls kein filter - wenn bkp altiviert, gesamt-csv speichern - - - // 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']; - // 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 - fs.writeFile('cars.csv', csv, function(err) { - if (err) throw err; - console.log('cars file saved'); - }); + - }); - // teil-CSV fuer einzelne Wache erstellen + + jetzt csv erzeugen und versenden + falls kein filter + wenn bkp altiviert, gesamt-csv speichern + + + // 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']; + // gesamte CSV erstellen, falls aktiviert + + + + + + + json2csv({data: full_rmld, fields: csv_col}, function(err, csv) { + if (err) console.log(err); + // CSV in Backup-Ordner speichern, falls aktiviert + 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 - - // 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) + + }); + // alte Rueckmeldungen loeschen + db_rmld_loeschen(waip_uuid); }); - // Einsatz löschen + // alten Einsatz loeschen sql.db_einsatz_loeschen(waip.id); 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 => { // 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') {