This commit is contained in:
2025-05-11 20:22:07 +00:00
parent fc2f96db00
commit 3952a985c0

View File

@@ -6623,23 +6623,23 @@ class DataProcessor:
# ... (Logik für den letzten Batch mit ThreadPoolExecutor) ...
self.logger.debug(f" FINALER Branch Batch beendet. {len(results_list)} Ergebnisse erhalten ({batch_error_count} Fehler).")
# Sammle Sheet Updates (W, X, Y, AO, AP) fuer diesen finalen Batch.
if results_list:
# Sammle Sheet Updates (AH, AI, AJ, AK, BC, BD) fuer diesen finalen Batch.
if results_list: # Beginn des Blocks, zu dem das problematische if gehören sollte
current_timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
current_version = getattr(Config, 'VERSION', 'unknown')
batch_sheet_updates = []
results_list.sort(key=lambda x: x['row_num'])
for res_data in results_list: # <--- HIER IST DIE ZWEITE SCHLEIFE
for res_data in results_list: # Beginn der inneren Schleife
row_num = res_data['row_num']
result = res_data['result']
self.logger.debug(f" FINALER Batch Zeile {row_num}: Ergebnis aus evaluate_branch_task: {result}") # DEBUG
self.logger.debug(f" FINALER Batch Zeile {row_num}: Ergebnis aus evaluate_branch_task: {result}")
# Sammle Updates fuer AH, AI, AJ, AK, BC, BD
batch_sheet_updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Vorschlag Branche"] + 1)}{row_num}',
'values': [[result.get("branch", "FEHLER BRANCH")]]})
batch_sheet_updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Branche Konfidenz"] + 1)}{row_num}',
'values': [[result.get("confidence", "N/A CONF")]]}) # <<< HIER ANPASSEN
'values': [[result.get("confidence", "N/A CONF")]]})
batch_sheet_updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Konsistenz Branche"] + 1)}{row_num}',
'values': [[result.get("consistency", "error CONS")]]})
batch_sheet_updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Chat Begruendung Abweichung Branche"] + 1)}{row_num}',
@@ -6649,21 +6649,30 @@ class DataProcessor:
'values': [[current_timestamp]]})
batch_sheet_updates.append({'range': f'{self.sheet_handler._get_col_letter(COLUMN_MAP["Version"] + 1)}{row_num}',
'values': [[current_version]]})
# Fuege diese Updates zur globalen Liste hinzu (wird dann nur noch einmal gesendet)
# all_sheet_updates.extend(batch_sheet_updates) # Nicht hier sammeln, direkt senden
# Ende der inneren for-Schleife (for res_data in results_list)
# Sende die gesammelten Updates fuer DIESEN finalen Batch.
# DIESER BLOCK MUSS AUF DERSELBEN EBENE WIE DIE if results_list BEDINGUNG SEIN (oder eine Ebene tiefer, wenn er nur bei results_list ausgeführt werden soll)
# Basierend auf der Logik, dass Updates nur gesendet werden, WENN es welche gibt, gehört es eine Ebene tiefer als if results_list.
# Also auf der Ebene der batch_sheet_updates = [] Initialisierung.
# Sende die gesammelten Updates fuer DIESEN finalen Batch.
if batch_sheet_updates:
self.logger.debug(f" Sende FINALES Sheet-Update fuer {len(results_list)} Zeilen ({len(batch_sheet_updates)} Zellen)...") # <<< GEÄNDERT
# Nutzt die batch_update_cells Methode des Sheet Handlers (Block 14) mit Retry.
success = self.sheet_handler.batch_update_cells(batch_sheet_updates)
if success:
self.logger.info(f" FINALES Sheet-Update fuer Branch Batch erfolgreich.") # <<< GEÄNDERT
# Der Fehlerfall wird von batch_update_cells geloggt
# ---> KORREKTE EINRÜCKUNG FÜR DEN FOLGENDEN BLOCK <---
# Dieser Block sollte auf derselben Ebene sein wie die Initialisierung von batch_sheet_updates
# oder, wenn er nur ausgeführt werden soll, wenn results_list nicht leer ist,
# dann innerhalb des `if results_list:` Blocks, aber NACH der `for`-Schleife.
# Im Screenshot ist es direkt nach der for-Schleife, also innerhalb von `if results_list:`.
if batch_sheet_updates: # Diese Zeile muss dieselbe Einrückung haben wie z.B. "current_timestamp ="
self.logger.debug(f" Sende FINALES Sheet-Update fuer {len(results_list)} Zeilen ({len(batch_sheet_updates)} Zellen)...")
success = self.sheet_handler.batch_update_cells(batch_sheet_updates)
if success:
self.logger.info(f" FINALES Sheet-Update fuer Branch Batch erfolgreich.")
# Der Fehlerfall wird von batch_update_cells geloggt
# Ende des `if results_list:` Blocks
# Ende des `if tasks_for_processing_batch:` Blocks (für den finalen Batch)
# Logge den Abschluss des Modus
self.logger.info(f"Brancheneinschaetzung (Parallel Batch) abgeschlossen. {processed_count} Zeilen verarbeitet (in Batch aufgenommen), {skipped_count} Zeilen uebersprungen.") # <<< GEÄNDERT
self.logger.info(f"Brancheneinschaetzung (Parallel Batch) abgeschlossen. {processed_count} Zeilen verarbeitet (in Batch aufgenommen), {skipped_count} Zeilen uebersprungen.")
# Keine Pause nach diesem Modus noetig, da die naechste Aktion im Dispatcher (Block 34) folgt.