def loadC2CDayLocally(self, fileLocation, day, mappingZebra): """ Cette fonction prend en paramètre une date de jour formatée en chaine de caractère, Lit le fichier de configuration pour récupérer le repertoire de dépot des fichiers et lit pour le jour correspondant les données du c2s et les met dans une liste qu'elle renvoie ensuite """ c2cList = dict() resultList = [] with open(fileLocation, "r") as csvfile: reader = csv.reader(csvfile, delimiter=";", quotechar='"') #on ne tient pas compte de la première ligne next(reader) for row in reader: tmpElt = DDC2CJourSTKP(row) if tmpElt.stkpMsisdn not in c2cList: c2cList[tmpElt.stkpMsisdn] = tmpElt else: previousElt = c2cList[tmpElt.stkpMsisdn] previousElt.c2c = previousElt.c2c + tmpElt.c2c c2cList[tmpElt.stkpMsisdn] = previousElt print(time.strftime("%d/%m/%Y %H:%M:%S"), "Début de la complétion totale ...") #semaine = self.getWeekNumberFromDate(day, self._DATE_FORMAT) semaine = Utils.getWeekNumberFromDate(day, self._DATE_FORMAT) for stkpMsisdn, stkp in c2cList.items(): stkp.jour = day stkp.sem = semaine resultList.append(self.getMappingZebraInfos(stkp, mappingZebra)) print(time.strftime("%d/%m/%Y %H:%M:%S"), "Fin de la complétion totale ...") return resultList
def insertC2CSTKADay(self, day): sessionFactory = SessionFactory() session = sessionFactory.Session() stkps = session.query(DDC2CJourSTKP).filter_by(jour = day) resultat = dict() sem = Utils.getWeekNumberFromDate(day, self._DATE_FORMAT) for stkp in stkps: if(resultat.get(stkp.stkaMsisdn) == None): tmp = DDC2CJourSTKA(stkp) tmp.jour = day tmp.sem = sem tmp.stkaMsisdn = stkp.stkaMsisdn resultat[stkp.stkaMsisdn] = tmp connection = sessionFactory.getConnection() result = connection.execute("select sum(c2c) c2c, stka_msisdn from dd_c2c_jour_stkp where jour= '"+day+"' group by stka_msisdn") for row in result: stkaMsisdn = row['stka_msisdn'] tmpC2c = row['c2c'] resultat[stkaMsisdn].c2c = tmpC2c connection.close() toAdd = [] for res, val in resultat.items(): toAdd.append(val) try: print(time.strftime("%d/%m/%Y %H:%M:%S"), "Début insertion ") session.add_all(toAdd) session.commit() print(time.strftime("%d/%m/%Y %H:%M:%S"), "Fin insertion ") print(time.strftime("%d/%m/%Y %H:%M:%S"), "Fin insertions avec succès") except Exception as ex: self.view_traceback() print(time.strftime("%d/%m/%Y %H:%M:%S"), "Echec de l'insertion, annulation des modifications") session.rollback() finally: session.close() print(time.strftime("%d/%m/%Y %H:%M:%S"), "Session close")